【发布时间】:2022-08-04 06:29:58
【问题描述】:
在 Django CMS 中有{% placeholder \'content\' %}。我尝试在非 django-cms 页面上使用它,即来自 apphook 的详细视图页面。但是,当我切换到详细视图页面中的结构视图时,占位符似乎没有反映。这是它应该如何工作还是我的代码有问题?如果它应该是这样工作的,有没有办法让占位符出现在页面中?
标签: django django-cms
在 Django CMS 中有{% placeholder \'content\' %}。我尝试在非 django-cms 页面上使用它,即来自 apphook 的详细视图页面。但是,当我切换到详细视图页面中的结构视图时,占位符似乎没有反映。这是它应该如何工作还是我的代码有问题?如果它应该是这样工作的,有没有办法让占位符出现在页面中?
标签: django django-cms
您不能在 CMS 页面之外使用 {% placeholder。
如果您在其中一个页面上,则可以使用静态占位符。这些将在存在具有相同名称的静态占位符的任何页面上显示相同的内容。因此,一个很好的例子是页脚或页眉,您希望它在所有页面上都相同;
{% static_placeholder "footer" %}
您可以使用的另一件事是模型上的 PlaceholderField,这对于您的 apphook 中的详细信息页面示例很有用。
举个例子;
class Category(models.Model):
name = models.CharField(max_length=20)
description = PlaceholderField('category_description')
然后,您可以在您的模板中呈现此占位符,它的行为类似于 cms 页面上的标准占位符;
{% load cms_tags %}
{% render_placeholder category_instance.description language 'en' %}
您可以找到PlaceholderField here 的文档
【讨论】: