用Django Admin中的富文本编辑器替换textarea?

use*_*736 39 python django admin

我想知道用Django Admin中的富文本编辑器替换标准textarea字段的最佳方法吗?

msh*_*yer 25

有一个附加的Django应用程序,可以为Django管理表单提供TinyMCE支持,而不必使用管理模板或Django newform内部.


小智 13

看一下这个片段 - 基本思路是在管理定义中包含自定义JS,它将用富文本编辑器替换标准文本区域.

对于jQuery/FCKEditor,这样的JS看起来像这样:

$(document).ready(function() {
    $("textarea").each(function(n, obj) {
        fck = new FCKeditor(obj.id) ;
            fck.BasePath = "/admin-media/fckeditor/" ;
            fck.ReplaceTextarea() ;
    });
});
Run Code Online (Sandbox Code Playgroud)


zgo*_*oda 10

我会说:定义自己的ModelAdmin类并覆盖用于特定字段的小部件,例如:

class ArticleAdminModelForm(forms.ModelForm):
    description = forms.CharField(widget=widgets.AdminWYMEditor)

    class Meta:
        model = models.Article
Run Code Online (Sandbox Code Playgroud)

(AdminWYMEditor是一个forms.Textarea子类,它为WYMEditor添加了特定于Django管理应用程序的配置).

请参阅Jannis Leidel的这篇博客文章,了解如何实现此小部件.


Yar*_*nko 6

在帖子和答案的日期,TinyMCE非常受欢迎(因为它可能仍然存在).但经过一段时间ckeditor出现后,许多人认为这是一个更好的选择,包括许多SO用户:

比较TinyMCE和CKeditor的Wiki

http://www.turnkeylinux.org/blog/tinymce-vs-ckeditor

还有一篇2013年WISIWYG编辑与Django俄语的评论:

http://habrahabr.ru/company/htdt/blog/202782/