Django CMS page_attribute会回退到其他值吗?

时间:2014-05-14 12:26:31

标签: python django django-cms

我目前正在编辑所有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_titletitle属性。如果它们相等,那么title可能会被用作后备,因此我可以认为page_title没有设置。

如果有人有更好的建议,请随时回答:)

1 个答案:

答案 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 %}