【问题标题】:Django CMS PlaceholderFieldDjango CMS 占位符字段
【发布时间】:2019-08-17 01:40:28
【问题描述】:

我正在尝试将 Django CMS CKEditor 作为字段选项集成到我需要 CMS 插件(例如 Filer 和 Link)的自定义模型中。我遇到了 PlaceholderField 但不确定它实际上应该用于什么并且无法找到任何好的教程。

PlaceholderField 是做什么用的?我已将其添加到我的模型中,但不确定如何将其与 html 字段链接。

    title = models.CharField(max_length=200, blank=True, null=True)
    content = PlaceholderField('content')```



【问题讨论】:

    标签: django-cms djangocms-text-ckeditor


    【解决方案1】:

    PlaceholderField 将您在使用{% placeholder "content" %} 时通常从 CMS 页面模板中获得的功能带到您自己的模型中。

    这对于新闻这样的应用非常有用,其中新闻文章可能包含各种不同的内容。使用PlaceholderField 意味着在呈现新闻对象的模板中,您可以执行类似的操作;

    <h1>{{ object.title}}</h1>
    <div class="article_content">
        {% render_placeholder object.content "640" %}
    </div>
    

    然后在前端,查看该页面,您会从 CMS 获得相同的结构视图,显示您的占位符,您可以从中添加 CMS 插件。

    这是将所有第三方插件以及您为 CMS 页面制作的任何插件引入模型的绝妙方法。

    这方面的文档在这里; http://docs.django-cms.org/en/latest/how_to/placeholders.html

    【讨论】:

    • 感谢您澄清这一点。我的模型声明如下class News(CMSPlugin): title = models.CharField(max_length=200, blank=True, null=True) left_content_placeholder = PlaceholderField('left_content') ,我在我的模板中执行{% render_placeholder instance.left_content_placeholder "640" %},但是我没有选择将插件添加到我刚刚创建的新闻插件中,我还能缺少什么?
    • 所以我对它的理解是它是模型上的一个属性,它允许我们定义一个部分,即我有一个新闻插件,它上面有多个占位符(即一个用于左列,一个用于右列) 它可以让我基本上将任何插件放到这些地方,并且它们就像模板上的占位符一样期望它们处于插件级别?这是正确的吗?
    • 啊,我明白了。那是行不通的。但它也不需要。 PlaceholderField 适用于普通型号。如果您已经编写了一个想要包含插件的插件,您只需将News 定义为子插件的父类。然后可以在新闻插件下添加孩子。文档在这里; docs.django-cms.org/en/latest/how_to/…
    • 我已经实现了 PlaceholderField,它工作正常,除了任何非管理员用户都无法访问它。请您看看github.com/divio/django-cms/issues/5178#issuecomment-669904244。你有解决办法吗?
    猜你喜欢
    • 2017-12-24
    • 2013-10-08
    • 2012-11-02
    • 2013-08-25
    • 2015-05-20
    • 1970-01-01
    • 2013-03-22
    • 2015-03-16
    • 2017-09-26
    相关资源
    最近更新 更多