Django:在管理中使用tinymce4

2024-05-14 06:47:49 发布

您现在位置:Python中文网/ 问答频道 /正文

在尝试了各种方法让TinyMCE作为Django管理中HTML内容的编辑器之后,我终于让它使用本教程-https://github.com/ITCase-django/django-tinymce-4。在

然而,使用这种方法,我必须有django1.9和“Grappelli”管理皮肤,我宁愿避免。我试着把它取下来,但它也把TinyMCE移走了。在

我还尝试使用django-tinymce包中的HTMLField(),但是这种方式得到的编辑器非常粗糙,只有少数几个选项(粗体、斜体、列表等等)。在

有没有什么“最佳实践”让Django(最新版本)管理与完整的tinymce4?在

编辑:在尝试了各种选项(比如使用HTMLField()的高级主题)之后,我又回到了Grappelli主题的起点。我想我可以忍受这个主题一段时间。在


Tags: django方法httpsgithub内容主题html选项
3条回答

我最近在一个管理页面中做了一些修改,发现that很有用,也许你可以用这个加载TinyMCE并初始化它。(我会把它写在评论里,但我不能和我的代表评论)

如果您查看文档,您会发现有几种实现编辑器的方法:http://django-tinymce.readthedocs.io/en/latest/usage.html#using-the-widget。在

由于使用的是模型字段类型,因此需要查看设置以展开编辑器上可用的选项。在

编辑器的默认设置很简单。基于你说的相当粗糙的说法,我想换成全功能编辑。在

为此,您需要更改项目中的配置设置.py:http://django-tinymce.readthedocs.io/en/latest/installation.html#configuration

不进行测试,如果您添加:

TINYMCE_DEFAULT_CONFIG = {
'theme': "advanced",
}

这将打开更多按钮供您使用。在

第三方库是快速解决方案,但如果您只想JS解决方案,而不需要任何其他库安装好了。你可以在django admin中使用自定义JS文件来完成。在

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

然后在你的管理员py在

^{pr2}$

然后在中初始化它myscript.js在

<script>

tinyMCE.init({
        //mode : "textareas",
        mode : "specific_textareas",
        editor_selector : "tiny-class",
        theme : "simple"
    });
</script>

相关问题 更多 >

    热门问题