Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何停用Django CMS中的WYMeditor以仅使用普通HTML?_Django_Django Cms_Wymeditor - Fatal编程技术网

如何停用Django CMS中的WYMeditor以仅使用普通HTML?

如何停用Django CMS中的WYMeditor以仅使用普通HTML?,django,django-cms,wymeditor,Django,Django Cms,Wymeditor,我想介绍无需任何编辑器(wymeditor或tinymce)的纯html。我知道Django CMS附带Wymeditor,但我的问题是复制粘贴文本很烦人。即使没有格式,Wymeditor也喜欢在我简单复制(没有任何格式)时为段落添加样式。有时候,我甚至不需要在我的占位符中再放一段(这会影响我的风格) 有办法摆脱编辑吗?此外,是否有办法摆脱特定占位符的编辑器?有时候我确实需要它 注意:我知道我可以用字段.textfield创建自己的插件(它不使用编辑器),但我希望使用相同的插件,因为如果我更改插

我想介绍无需任何编辑器(wymeditor或tinymce)的纯html。我知道Django CMS附带Wymeditor,但我的问题是复制粘贴文本很烦人。即使没有格式,Wymeditor也喜欢在我简单复制(没有任何格式)时为段落添加样式。有时候,我甚至不需要在我的占位符中再放一段(这会影响我的风格)

有办法摆脱编辑吗?此外,是否有办法摆脱特定占位符的编辑器?有时候我确实需要它


注意:我知道我可以用
字段.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编辑器都必须独立地实现该功能,我们都在不同程度上对它感到厌烦。