2012-04-09 13 views
6

Obecnie pracuję nad projektem, który używa Django Django rejestracji i CMS. Podczas wyświetlania stron implementujących rejestrację django moje tytuły stron nie są renderowane.Django CMS Strona tytułowa nie czyni

Obecnie mają <title>{% page_attribute page_title %}</title> w base.html którym wszystkie moje szablony dziedziczyć.

Na stronach, które nie używają Django rejestrację wyświetlacz tytuły dobrze, ale wyświetlacz django rejestracji jako <title></title>

Moje strony są tworzone w ramach CMS i wszystko jest poprawnie renderowania. Jeśli ustawię tytuł wyraźnie w szablonie, tytuł zostanie wyrenderowany, ale wolałbym, aby został ustawiony w CMS.

odpowiedniej części registration_form.html jest poniżej:

{% 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 %} 

Dzięki!

Odpowiedz

10

tag {% page_attribute %} szablon działa tylko na stronach CMS. Kiedy w widokach kontrolowanych przez django-rejestracja, nie będą działać i raczej zwracają pusty ciąg (ponieważ język szablonów Django nigdy nie powinien podnosić wyjątków w środowisku wykonawczym). W szablonach używanych przez django-registration, musisz zastąpić tag tytułu.

Dlatego proponuję użyć <title>{% block title %}{% page_attribute page_title %}{% endblock %}</title> w szablonie bazowym. Następnie w szablonie rejestracji wykonaj coś w rodzaju {% block title %}Registration{% endblock %}.

+0

Dobra, pomyślałem, że muszę umieścić go w prawo w szablonie, miał nadzieję, że będę w stanie ustawić go ze strony. Czy jest jakiś sposób, aby ustawić go ze strony? – plumwd

+0

Jeszcze jedno pytanie dotyczące korzystania z innych szablonów w tym kontekście. Czy to oznacza, że ​​inne elementy, takie jak symbole zastępcze i podobne, również nie będą działać? – plumwd

Powiązane problemy