我正在使用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'),
答案 0 :(得分:0)
我相信password_reset_done
是django内置应用程序之一的方法。您可以在the official doc here.
Django's url dispatcher allows to pass extra options to a view function. Luckily,password_reset_done
函数接受template_name
,current_app
或extra_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',
...
)