Django CMS page_attribute 回退到其他值?

Posted

技术标签:

【中文标题】Django CMS page_attribute 回退到其他值?【英文标题】:Django CMS page_attribute falls back to other values? 【发布时间】:2014-07-02 12:18:46 【问题描述】:

我目前正在编辑所有 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】:

我刚刚尝试过,您可以像这样有条件地覆盖该块;

% extends 'base.html' %

% load i18n cms_tags %
% page_attribute "page_title" as cms_title %

% if cms_title %
    % block title %
         cms_title 
    % endblock %
% endif %

【讨论】:

以上是关于Django CMS page_attribute 回退到其他值?的主要内容,如果未能解决你的问题,请参考以下文章

无法导入名称六 Django-CMS

Django-CMS - 当我指定模型时,管理员的 CMS 部分消失

将现有的 django 应用程序与 django-cms 集成

django-cms 和 jQuery

Django CMS 教程

cms 之外的 Django CMS 简单占位符