Django-注册密码重置管理模板

时间:2014-02-28 20:27:29

标签: python django django-templates django-registration

我正在使用Django 1.6和django-registration 1.0

我必须明确指定重置网址

url(r'^password/reset/done/$', password_reset_done, name='password_reset_done'),

但它不断拉入管理模板。

为什么会这样? 如何将其覆盖为自定义模板?

更新: 试过以下内容,它仍然会拉入管理模板...

url(r'^password/reset/', password_reset,
        {'template_name': 'registration/password_reset_form.html'}, name='password_reset'),
url(r'^accounts/password/reset/done/$', password_reset_done,
        {'template_name': 'registration/password_reset_done.html'}, name='password_reset_done'),

2 个答案:

答案 0 :(得分:0)

我相信password_reset_done是django内置应用程序之一的方法。您可以在the official doc here.

上详细了解此auth应用

Django's url dispatcher allows to pass extra options to a view function. Luckilypassword_reset_done函数接受template_namecurrent_appextra_context等可选参数。

将这些放在一起,您可以执行以下操作:

url(r'^password/reset/done/$', password_reset_done, {'template_name': PATH_TO_YOUR_CUSTOM_TEMPLATE}, name='password_reset_done'),

要详细了解url功能,请阅读this API doc

答案 1 :(得分:0)

INSTALLED_APPS(在settings.py中)的应用列表顺序是Django用于查找模板的顺序。如果两个模板共享相同的名称,则首先列出的应用程序将获胜。这意味着在INSTALLED_APPS中,您需要确保'django.contrib.admin'应用程序位于包含您希望使用的模板文件的任何应用程序之后(可能是“注册”应用程序)。像这样:

# settings.py
...
INSTALLED_APPS = (
    ...
    'registration', # Or whichever app contains the template you want to use
    'django.contrib.admin',
    ...
)
相关问题