如何在 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)
您只需执行以下步骤:
将 tinymce 模块安装到站点包中。
pip install django-tinymce
将 tinymce 添加到 settings.py 中的 INSTALLED_APPS 为您的项目:
INSTALLED_APPS = (
...
'tinymce',
...
)
将 tinymce.urls 添加到您项目的根 urls.py:
urlpatterns = patterns('',
...
(r'^tinymce/', include('tinymce.urls')),
...
)
在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__'
在您的 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
没有支持 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)您只需执行以下步骤:
将 tinymce 模块安装到站点包中。
pip install django-tinymce
将 tinymce 添加到 settings.py 中的 INSTALLED_APPS 为您的项目:
INSTALLED_APPS = ( ... 'tinymce', ... )
将 tinymce.urls 添加到您项目的根 urls.py:
urlpatterns = patterns('', ... (r'^tinymce/', include('tinymce.urls')), ... )
在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__'
在您的 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