【问题标题】:How to deactivate WYMeditor in Django-CMS to use only plain HTML?如何在 Django-CMS 中停用 WYMeditor 以仅使用纯 HTML?
【发布时间】:2014-01-08 01:12:29
【问题描述】:

我想在不需要任何编辑器(wymeditor 或 tinymce)的情况下引入纯 html。我知道 Django-CMS 带有 Wymeditor,但我的问题是复制和粘贴文本很烦人。即使没有格式,Wymeditor 喜欢在我简单复制时为段落添加样式(没有任何格式)。有时,我什至不需要在占位符中添加另一个段落(这与我的风格相冲突)。

有没有办法摆脱编辑器?此外,有没有办法摆脱编辑器为特定的占位符?有时我确实需要它。

注意:我知道我可以使用 field.textfield 创建自己的插件(并且它不使用编辑器),但我想使用相同的插件,因为如果我更改插件,我将不得不移动数据库中的所有文本(生产和开发)。

【问题讨论】:

  • 我真的希望告诉浏览器粘贴到 contenteditable 应该去除格式并不那么难。每个所见即所得的编辑器都必须独立实现该功能,而我们都在不同程度上对此感到厌烦。

标签: django django-cms wymeditor


【解决方案1】:

我找到了我的解决方案。基本上,我覆盖了 TextPlugin 的插件。我将此添加到我的cms_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)

注意:

  1. 我取消注册原来的TextPlugin (plugin_pool.unregister_plugin(TextPluginCMS)) 并注册一个简单地继承自CMSPluginBase 的新TextPlugin。这样就可以摆脱烦人的编辑器了。

  2. 我注册了另一个EditorTextPlugin,它继承自原始TextEditor (from cms.plugins.text.cms_plugins import TextPlugin as TextPluginCMS)。我只是重写了插件的名字。

有了这个,所有现有的文本插件默认不会使用任何编辑器。此外,我仍然可以通过EditorTextPlugin 使用编辑器

最后,我可以通过 settings.py 中的CMS_PLACEHOLDER_CONF 来控制哪些插件使用编辑器:

CMS_PLACEHOLDER_CONF = {
    'my_placeholder': {
        'plugins': { 'TextPlugin', 'EditorTextPlugin'}
    },
}

不需要无聊的迁移。当我想使用编辑器时,我只需添加一个新的EditorTextPlugin 并复制并粘贴内容。


编辑

正如@Melissa 在 cmets 中指出的那样。您确实需要将模板text.html{{instance.body|safe}} 添加到模板目录中。

从 django-cms 3.x 开始,Text 模型的导入方式如下:from djangocms_text_ckeditor.models import Text。谢谢@northben

【讨论】:

  • “text.html”文件也需要创建。我只是输入了{{ instance.body|safe }} 并将其放到了我的模板目录中。
  • 从 django-cms 3.x 开始,Text 模型的导入方式如下:from djangocms_text_ckeditor.models import Text
猜你喜欢
  • 2011-08-21
  • 1970-01-01
  • 2016-04-27
  • 1970-01-01
  • 2020-04-29
  • 2011-07-23
  • 2021-08-21
  • 2019-12-09
  • 2015-08-09
相关资源
最近更新 更多