我想知道用Django Admin中的富文本编辑器替换标准textarea字段的最佳方法吗?
有一个附加的Django应用程序,可以为Django管理表单提供TinyMCE支持,而不必使用管理模板或Django newform内部.
看一下这个片段 - 基本思路是在管理定义中包含自定义JS,它将用富文本编辑器替换标准文本区域.
对于jQuery/FCKEditor,这样的JS看起来像这样:
$(document).ready(function() { $("textarea").each(function(n, obj) { fck = new FCKeditor(obj.id) ; fck.BasePath = "/admin-media/fckeditor/" ; fck.ReplaceTextarea() ; }); });
我会说:定义自己的ModelAdmin类并覆盖用于特定字段的小部件,例如:
class ArticleAdminModelForm(forms.ModelForm): description = forms.CharField(widget=widgets.AdminWYMEditor) class Meta: model = models.Article
(AdminWYMEditor是一个forms.Textarea
子类,它为WYMEditor添加了特定于Django管理应用程序的配置).
请参阅Jannis Leidel的这篇博客文章,了解如何实现此小部件.
在帖子和答案的日期,TinyMCE非常受欢迎(因为它可能仍然存在).但经过一段时间ckeditor出现后,许多人认为这是一个更好的选择,包括许多SO用户:
比较TinyMCE和CKeditor的Wiki
http://www.turnkeylinux.org/blog/tinymce-vs-ckeditor
还有一篇2013年WISIWYG编辑与Django俄语的评论:
http://habrahabr.ru/company/htdt/blog/202782/