如何停用Django CMS中的WYMeditor以仅使用普通HTML?
我想介绍无需任何编辑器(wymeditor或tinymce)的纯html。我知道Django CMS附带Wymeditor,但我的问题是复制粘贴文本很烦人。即使没有格式,Wymeditor也喜欢在我简单复制(没有任何格式)时为段落添加样式。有时候,我甚至不需要在我的占位符中再放一段(这会影响我的风格) 有办法摆脱编辑吗?此外,是否有办法摆脱特定占位符的编辑器?有时候我确实需要它如何停用Django CMS中的WYMeditor以仅使用普通HTML?,django,django-cms,wymeditor,Django,Django Cms,Wymeditor,我想介绍无需任何编辑器(wymeditor或tinymce)的纯html。我知道Django CMS附带Wymeditor,但我的问题是复制粘贴文本很烦人。即使没有格式,Wymeditor也喜欢在我简单复制(没有任何格式)时为段落添加样式。有时候,我甚至不需要在我的占位符中再放一段(这会影响我的风格) 有办法摆脱编辑吗?此外,是否有办法摆脱特定占位符的编辑器?有时候我确实需要它 注意:我知道我可以用字段.textfield创建自己的插件(它不使用编辑器),但我希望使用相同的插件,因为如果我更改插
注意:我知道我可以用
字段.textfield
创建自己的插件(它不使用编辑器),但我希望使用相同的插件,因为如果我更改插件,我必须手动移动数据库中的所有文本(生产和开发)。我找到了解决方案。基本上,我覆盖了TextPlugin的插件。我将此添加到我的cms\u plugins.py
:
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
from cms.plugins.text.models import Text
from cms.plugins.text.cms_plugins import TextPlugin as TextPluginCMS
class TextPlugin(CMSPluginBase):
model = Text
name = _("Text Plugin")
render_template = "text.html"
plugin_pool.unregister_plugin(TextPluginCMS)
plugin_pool.register_plugin(TextPlugin)
class EditorTextPlugin(TextPluginCMS):
name = _("Editor Text Plugin")
plugin_pool.register_plugin(EditorTextPlugin)
注意:
TextPlugin
(plugin\u池。注销插件(TextPluginCMS)
)并注册一个新的TextPlugin
,它只是从CMSPluginBase
继承。这将摆脱恼人的编辑EditorTextPlugin
,它继承了原始textdeditor
(来自cms.plugins.text.cms\u plugins将TextPlugin导入为TextPluginCMS
)。我只是重写了插件的名称EditorTextPlugin
一起使用
最后,我可以通过settings.py中的CMS\u PLACEHOLDER\u CONF
控制哪些插件使用编辑器:
CMS_PLACEHOLDER_CONF = {
'my_placeholder': {
'plugins': { 'TextPlugin', 'EditorTextPlugin'}
},
}
不需要无聊的迁移。当我想使用编辑器时,我只需添加一个新的EditorTextPlugin
,然后复制并粘贴内容
编辑 正如@Melissa在评论中指出的那样。您确实需要将模板
text.html
和{{instance.body | safe}}
添加到模板目录中
从django cms 3.x开始,文本模型的导入方式如下:
从django cms\u Text\u ckeditor.models导入文本
。谢谢@northben还需要创建“text.html”文件。我刚刚输入了{{instance.body | safe}}
,并将其放入我的templates目录中。从django cms 3.x开始,文本模型的导入方式如下:从djangocms_Text_ckeditor.models导入文本
,我真的希望不那么难告诉浏览器,粘贴到contenteditable应该去掉格式。每个wysiwyg编辑器都必须独立地实现该功能,我们都在不同程度上对它感到厌烦。