9

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

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

在不使用 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 %}

谢谢!

4

1 回答 1

15

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

因此,我建议您<title>{% block title %}{% page_attribute page_title %}{% endblock %}</title>在基本模板中使用。然后在注册模板中做类似{% block title %}Registration{% endblock %}.

于 2012-04-10T11:34:16.803 回答