我目前正在编辑所有Django-CMS模板继承的基本模板。我尝试做的是打印 page_title 属性,如果尚未设置,请改为打印{{ block.super }}
。
我目前的代码是:
{% block title %}
{% page_attribute "page_title" as cms_title %}
{% if cms_title and cms_title.strip %}
{{ cms_title }}
{% else %}
{{ block.super }}
{% endif %}
{% endblock %}
现在,当设置页面标题属性时,它按预期工作。但是,当页面标题留空时,会使用页面的标题属性,而不是我期望的。
这是预期的行为吗?如果是,我该如何解决这个问题?或者是否有其他方法可以获得我想要的结果?
我正在使用Django-CMS 3.0
修改
我被告知这是预期的行为,但没有提供解决方法。对我的情况来说足够好的解决方案是比较page_title
和title
属性。如果它们相等,那么title
可能会被用作后备,因此我可以认为page_title
没有设置。
如果有人有更好的建议,请随时回答:)
答案 0 :(得分:0)
我刚给这个&你可以像这样有条件地覆盖这个块;
{% extends 'base.html' %}
{% load i18n cms_tags %}
{% page_attribute "page_title" as cms_title %}
{% if cms_title %}
{% block title %}
{{ cms_title }}
{% endblock %}
{% endif %}