【问题标题】:Django CMS Page Title Doesn't RenderDjango CMS 页面标题不呈现
【发布时间】:2012-04-22 01:57:57
【问题描述】:

我目前正在开发一个使用 django-registration 和 Django CMS 的项目。当显示实现 django-registration 的页面时,我的页面标题不会呈现。

目前在 base.html 中有 <title>{% page_attribute page_title %}</title> 我的所有模板都继承自。

在不使用 django-registration 的页面中,标题显示正常,但 django-registration 显示为<title></title>

我的页面都是在 CMS 中创建的,其他一切都正确呈现。如果我在模板中明确设置标题,标题将呈现,但我宁愿在 CMS 中设置它。

registration_form.html的相关部分如下:

{% extends "base.html" %}
{% load cms_tags %}
{% load i18n %}
{% block "html_headers" %}
   <!-- conditional stuff here -->
  <link href="/media/css/forms.css" rel="stylesheet" type="text/css" />
{% endblock %}

谢谢!

【问题讨论】:

    标签: django-templates django-registration django-cms


    【解决方案1】:

    {% page_attribute %} 模板标签仅适用于 CMS 页面。当在由 django-registration 控制的视图中时,它们将不起作用,而是返回一个空字符串(因为 Django 的模板语言不应该在运行时引发异常)。在 django-registration 使用的模板中,需要覆盖 title 标签。

    因此,我建议您在基本模板中使用&lt;title&gt;{% block title %}{% page_attribute page_title %}{% endblock %}&lt;/title&gt;。然后在注册模板中执行{% block title %}Registration{% endblock %}之类的操作。

    【讨论】:

    • 好的,我想我可能必须将它直接放入模板中,希望我能够从页面中设置它。有什么方法可以从页面设置吗?
    • 还有一个关于在此上下文中使用其他模板的问题。这是否意味着占位符之类的其他项目也不起作用?
    猜你喜欢
    • 2011-04-06
    • 2011-09-20
    • 2019-02-08
    • 2018-10-13
    • 2017-11-22
    • 2019-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多