我目前正在开发一个使用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 %}
谢谢!
答案 0 :(得分:13)
{% page_attribute %}
模板标记仅适用于CMS网页。在由django-registration控制的视图中,它们将无法工作而是返回一个空字符串(因为Django的模板语言不应该在运行时引发异常)。在django-registration使用的模板中,您需要覆盖标题标记。
因此,我建议您在基本模板中使用<title>{% block title %}{% page_attribute page_title %}{% endblock %}</title>
。然后在注册模板中执行{% block title %}Registration{% endblock %}
。