python – Django:在管理界面中使用TinyMCE 4

在尝试了各种方法让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>
上一篇:javascript – 如何在TinyMCE中设置Html内容


下一篇:javascript – TinyMCE要求阻止发送表单