【发布时间】:2016-01-04 21:13:13
【问题描述】:
我正在使用 Django CMS 3.0.13。我有一个页面连接到一个从最近的祖先那里继承其模板的 App Hook。
祖先模板没有连接到 App Hook,并且有一个占位符:
{# ancestor template #}
{% block content %}
{% placeholder 'content' %}
{% endblock %}
App Hook 页面之前覆盖此块以隐藏内容占位符。现在,我需要启用这个占位符,所以我删除了覆盖并得到了欢迎:
在 apphook 应用程序中找不到“内容”占位符。请改用静态占位符。
我试过了:
-
重新添加覆盖并更改占位符的名称:
{% block content %} {% placeholder 'new_content' %} {% endblock %} -
保持继承不变并调用super:
{% block content %} {{ block.super }} {% endblock %} 删除页面,重新添加,设置应用挂钩并发布。
所有这些都会导致相同的错误。我发现可以解决此问题的唯一方法是将 App Hook'ed 页面的特定页面添加到 CMS_TEMPLATES。
这不太理想。我可以做些什么来解决这个问题?
【问题讨论】:
-
placeholder在应用挂钩页面中不起作用。如果您正在使用应用挂钩模板,则需要使用static_placeholder。 -
@marksweb 你能指出我的文档吗?因为我在应用程序挂钩页面上还有其他带有占位符的模板,效果很好。
-
如果我在
CMS_TEMPLATES中添加对应用程序挂钩页面的引用,它就可以正常工作。很奇怪。 -
啊,也许将它添加到
CMS_TEMPLATES使它工作。我找不到我确定我以前见过的文档。您能否确认一下,您是否尝试在您的应用挂钩模板中显示来自继承模板的相同占位符内容? -
好吧,我会被诅咒的 :) 我想知道为什么将它添加到
CMS_TEMPLATES似乎可以解决该声明?那好吧。如果您将其添加为答案,我会接受。
标签: django django-cms