TinyMCE:格式化我的TinyMCE编辑器会扼杀django的功能

TinyMCE: Formatting my tinymce editor kills django functionality

本文关键字:TinyMCE django 功能 格式化 我的 编辑器      更新时间:2023-09-26

我在django应用程序中嵌入了一个tinymce表单。我遵循了一些在线教程,它在基本默认设置下运行良好。唯一的问题是tinymce形式看起来不像我想要的那样。所以我添加了一些javascript来添加更多的按钮,将它们移动到tinymce区域的顶部。

当我添加javascript时,表单不起作用。也就是说,当我单击"保存"按钮时,我的新编辑不会传输回服务器。

以下呈现同义词形式:

 <form action="/edit_document/{{ current_doc.id }}/" method="post">{% csrf_token %}
   Name: {{ form.name }} <p>
   {{ form.content }}
   <input type="submit" value="SAVE" />
 </form>

上面的代码一直有效,直到我添加以下javascript来格式化我的tinymce编辑器。

<script type="text/javascript"> tinyMCE.init({  
    mode: "textareas",  
    theme: "advanced",  
    plugins: "advhr,table,emotions,media,insertdatetime,directionality", 
    theme_advanced_toolbar_align: "left",  
    theme_advanced_toolbar_location: "top", 
    theme_advanced_buttons1:"bold,italic,underline,strikethrough,sub,sup,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,formatselect,fontselect,fontsizeselect", 
    theme_advanced_buttons2:"bullist,numlist,outdent,indent,ltr,rtl,separator,link,unlink,anchor,image,separator,table,insertdate,inserttime,advhr,emotions,media,charmap,separator,undo,redo", 
    theme_advanced_buttons3: "",  
    content_css: "images/style.css",  
    height: "350px", 
    width: "653px"  
    });  
</script> 

现在发生的情况是,form.content没有传递回django视图,而是得到原始内容减去任何新编辑。

这里会发生什么?我该怎么修?


经过反复试验,以下是解决方案。不要将脚本放在网页顶部以格式化tinymce元素。相反,构建一个特殊的小部件来格式化小部件。即使剧本是一样的,django对这个领域的解释也会有所不同。

经过多次尝试和错误,以下是解决方案。不要将脚本放在网页顶部以格式化tinymce元素。相反,构建一个特殊的小部件来格式化小部件。即使剧本是一样的,django对这个领域的解释也会有所不同。

尝试此操作,而不是使用{{ form.content}}:

{{ form.content|safe }}

希望能有所帮助。