如何在 Django 中使用 TinyMCE 5?

How to use TinyMCE 5 with Django?

没有支持 TinyMCE 5 for Django 的软件包。唯一可用的软件包是版本 3 或 4。 我试过这个指南 https://www.tiny.cloud/docs/quick-start/ TinyMCE 表单使用原生 HTML 并且您已使用 javascript 对其进行了初始化,但 Django 表单以不同的方式工作。你必须在 Views 中制作它们,我不是那么先进,无法修改它。我应该怎么做?

按照您提供的说明进行操作,然后像往常一样创建 Django 表单并呈现。 根据您的说明制作一个选择器,如下所示:

  <script>
    tinymce.init({
      selector: ':text'
    });
  </script>

这将为您的表单启动所有文本区域字段。 如果您不希望所有文本区域字段都是 tinymce,那么在表单初始化中添加 class 就像这样:

class MyForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        self.fields['myfield'].widget.attrs['class'] = 'tinymce'

然后将 tinymce.init 中的选择器更改为“.tinymce”

备选:您可以从 https://github.com/aljosa/django-tinymce 安装 django-tinymce 然后从 tinmce 站点下载 tinymce 5,把它放在你的静态文件中,并在你的项目设置中为新版本配置 django 插件,如下所示:

TINYMCE_JS_URL = STATIC_URL + 'tinymce/tinymce.min.js'
TINYMCE_DEFAULT_CONFIG = {
    'theme': "silver",
}

我刚刚测试了这个。

您可以按照此 documentation.

安装带有 Django 管理表单的 TinyMCE V5(需要 Python 3.6)

您只需执行以下步骤:

  1. 将 tinymce 模块安装到站点包中。

    pip install django-tinymce
    
  2. 将 tinymce 添加到 settings.py 中的 INSTALLED_APPS 为您的项目:

    INSTALLED_APPS = (
        ...
        'tinymce',
        ...
    )
    
  3. 将 tinymce.urls 添加到您项目的根 urls.py:

    urlpatterns = patterns('',
        ...
        (r'^tinymce/', include('tinymce.urls')),
        ...
    )
    
  4. 在admin.py中用tinymce替换widget。

    from tinymce.widgets import TinyMCE
    
    class ModelAdminForm(forms.ModelForm):
        content = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
        class Meta:
            model = Model
            fields = '__all__'
    
  5. 在您的 settings.py 中,描述您要使用的插件。

    TINYMCE_DEFAULT_CONFIG = {
        'plugins': "table,spellchecker,paste,searchreplace,image,imagetools,media,codesample,link,code",
        'theme': "silver",
        'cleanup_on_startup': True,
        'custom_undo_redo_levels': 10,
    }
    
    TINYMCE_SPELLCHECKER = True
    TINYMCE_COMPRESSOR = True