在尝试了各种方法让TinyMCE作为我在Django管理中的HTML内容的编辑器之后,我终于让它使用了本教程 – https://github.com/ITCase-django/django-tinymce-4.
然而,使用这种方法我必须有Django 1.9和“Grappelli”管理皮肤,我宁愿避免.我试图删除它,但它也删除了TinyMCE.
我也试过使用django-tinymce包中的HTMLField(),但是这种方式只有少数几个选项(粗体,斜体,列表就是这样).
有完全成熟的TinyMCE 4的Django(最新版本)管理是否有任何“最佳实践”?
编辑:尝试各种选项后(如HTMLField()的高级主题)我回到了我开始使用Grappelli主题的地方.我想我可以忍受这个主题一段时间了.
解决方法:
第三方库是快速解决方案,但如果您只需要JS解决方案,并且不需要安装任何其他库.您可以使用自定义JS文件在django admin中执行此操作.
class FooForm(forms.ModelForm):
def __init__(self,*args,**kwargs):
super(FooForm, self).__init__(*args, **kwargs)
self.fields['yourtinymcefield'].widget.attrs['class'] = 'tiny-class'
class Meta:
model = FooModel
fields = ('fields') # your fields here
然后在你的admin.py中
class FooAdmin(admin.ModelAdmin):
form = FooForm
# regular stuff
class Media:
js = (
'https://cloud.tinymce.com/stable/tinymce.min.js' # tinymce js file
'js/myscript.js', # project static folder
)
admin.site.register(Foo, FooAdmin)
然后在myscript.js中初始化它
<script>
tinyMCE.init({
//mode : "textareas",
mode : "specific_textareas",
editor_selector : "tiny-class",
theme : "simple"
});
</script>