django.contrib.auth просмотры и шаблоны - PullRequest
1 голос
/ 13 ноября 2010

В моем "корневом" шаблоне у меня есть что-то вроде этого

{% if special %}
some_special_html
{% endif %}

Шаблон special var вставляется в шаблон при определенных видах.

Проблема в том, что мне нуженpassword_change view для allso установить шаблон special var.

Какой лучший способ подойти к этому?

В настоящее время представление password_change вызывается непосредственно из urls.py:

url(r'^change_password/$', 'django.contrib.auth.views.password_change',
    {'template_name': 'profile/password_change.html'},
    name='password_change'),

Ответы [ 2 ]

3 голосов
/ 25 августа 2011

Начиная как минимум с Django 1.3, представление password_change требует дополнительного контекста, хотя в документации это не упоминается.

Вы можете передать дополнительные аргументы ключевых слов в представление, используя аргумент kwargs функции url, поэтому, чтобы получить дополнительный контекст, сделайте что-то вроде этого:

url(r'^password/change/$',
    auth_views.password_change,
    {'template_name': 'profile/password_change.html'},
    name='password_change',
    kwargs=dict(extra_context={'special': 'special'}),
    ),
0 голосов
/ 13 ноября 2010

Либо переместите обработку special var в context_processor, либо просто оберните представление password_change auth своим собственным представлением, которое передается в правильном контексте.

...