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_title
和title
属性是一个不错的解决方案。如果它们相等,说明title
可能被用作备用,这样我就可以假设page_title
没有被设置。
如果有人有更好的建议,欢迎回复哦 :)
1 个回答
0
我刚试了一下,你可以像这样有条件地覆盖这个代码块;
{% extends 'base.html' %}
{% load i18n cms_tags %}
{% page_attribute "page_title" as cms_title %}
{% if cms_title %}
{% block title %}
{{ cms_title }}
{% endblock %}
{% endif %}