cms 之外的 Django CMS 简单占位符

Posted

技术标签:

【中文标题】cms 之外的 Django CMS 简单占位符【英文标题】:Django CMS simple placeholders outside of cms 【发布时间】:2017-09-26 13:22:12 【问题描述】:

我有一个完全开发的 Django 应用程序,并决定添加 DjangoCMS,以便为内容开发人员提供一种快速制作登陆页面原型等的方法。它现在位于 myurl.com/cms 下并且运行良好。伙计们可以创建新页面,选择模板并在那里添加插件。

当我看到占位符模板标签时,我立即想到将其放置在整个项目中,在 cms 之外,我希望产品团队能够快速添加和更改内容的任何地方。我不希望他们从 cms 中为此创建一个新页面,因为该站点可能具有复杂的功能,在这种情况下仅使用一次(即搜索页面)。

所以基本上我希望有静态占位符,我可以使用 cms 插件模板标签将它们放置在页面的 html 部分中。

我已经在 DjangoCMS 文档中找到了Placeholders outside the CMS。 但要使其工作,我必须为呈现页面的每个视图获取相关的占位符对象,这将大大增加“快速为此文本添加占位符”的工作量。

有没有简单的方法来做到这一点?我有点希望不会是第一个遇到这个问题的人。

【问题讨论】:

【参考方案1】:

占位符分为三种:

页面占位符 - 使用 % placeholder % 声明。这些只能在 cms 页面内使用。

静态占位符 - 使用 % static_placeholder % 声明。不绑定到页面或对象。

应用占位符 - 在您的 models.py 中使用 PlaceholderField 声明并在模板中使用 % render_placeholder % 呈现

经验法则是,如果您要呈现 cms 页面,请使用页面占位符,否则根据您的用例使用静态占位符。

【讨论】:

以上是关于cms 之外的 Django CMS 简单占位符的主要内容,如果未能解决你的问题,请参考以下文章

Django-CMS - 全球占位符?

将自定义占位符添加到 django-cms

django cms 占位符不在结构视图中

Django-cms haystack 搜索 - 占位符内容

截断 Django CMS 占位符

“渲染占位符”未出现在 django CMS 模板中