0

也许我不明白一些简单的事情。我正在阅读第二天的文档,不明白如何在第三方插件中使用 django-cms 中的 ckeditor。

这里写着:

用作模型字段如果您想在自己的模型字段上使用小部件,您可以!只需像这样导入提供的 HTMLField:

from djangocms_text_ckeditor.fields import HTMLField并在您的模型中使用它,就像 TextField 一样:

class MyModel(models.Model): myfield = HTMLField(blank=True)此字段不允许您在文本编辑器中嵌入任何其他 CMS 插件。插件只能嵌入占位符字段中。

如果您需要允许在 HTML 字段中嵌入其他插件,请将 HTMLField 转换为 Placeholderfield 并将占位符配置为仅接受 TextPlugin。有关在 CMS 之外使用占位符的更多信息,请参阅:

http://docs.django-cms.org/en/latest/how_to/placeholders.html

目前 HTMLField 正在工作,阅读说明后,我不明白如何在完全集成到 django-cms 的第三方插件中“将 HTMLfield 转换为占位符并将占位符配置为仅接受 TextPlugin”。我从未在第三方插件中创建占位符。

我的目标是在第三方插件中设置一个文本框,我可以在其中使用格式化功能编辑文本。我正在使用最新的 Django-CMS。默认情况下,它有 djangocms_text_ckeditor。

谢谢!

模型.py:

[..]

    from djangocms_text_ckeditor.fields import HTMLField

    class Question(models.Model):
    content = HTMLField(blank=True)
[..]

模板

[..]
{% load cms_tags %}
[..]


    {% for field in form %}
    {{ field }}
    {% endfor %}

[..]

我的文本区域如下所示:

<textarea name="content" cols="40" rows="10" class="CMS_CKEditor" data-ckeditor-basepath="/static/djangocms_text_ckeditor/ckeditor/" id="id_content"></textarea>

我注意到通过管理面板可以为这个新的文本区域使用编辑器,但用户的网站上没有任何变化。视觉上它是一个普通的文本区域

4

1 回答 1

0

我找到了解决方案。我必须在模板中包含“{{ form.media }}”标签

  <form method="post" enctype="multipart/form-data" novalidate>
    {% csrf_token %}
    {{ form.media }}
    [..]
于 2020-04-08T10:55:30.697 回答