Django 1.6 - 密码更改/重置的模板

5

我希望使用Django的密码更改/重置视图,例如对于以下视图:

django.contrib.auth.views.password_change

我需要创建一个名为的模板。
registration/password_change_form.html

问题在于,尽管我在项目中实现了此模板,但Django仍显示管理员网站的密码更改页面。唯一的方法是将其重命名为不同的名称(例如registration/password_change_form_1.html),然后传递名称以便Django使用我的模板。

url(r'^password/change/$',
    auth_views.password_change,
    {'template_name': 'registration/password_change_form_1.html',
     'password_change_form': MyPasswordChangeForm},
    name='password_change'),

我是否漏掉了什么?为什么在使用默认名称时,Django不会使用我的模板?


你在settings.TEMPLATE_LOADERS中使用app_directories.Loader了吗? - DaveB
3个回答

7

我认为你的应用程序在 INSTALLED_APP 中位于 django.contribute.admin 下。


谢谢,我通过将'django.contrib.admin'放在INSTALLED_APPS的最后一个条目来解决它。 - Dan
或者,您可以在应用程序中创建一个名为registration的文件夹,并将password_change_form_1.html放入其中,这样无论您将django.contrib.admin放在哪里都不会有影响。这篇博客文章就是这样做的。 - gregoltsov

0

添加设置

INSTALLED_APPS = (
    ...
    'registration',
)

之后

TEMPLATE_DIRS = (
    ...
    "/home/user/templates",
)

在目录模板中添加“registration”和其他模板的“base.html”。
在django==1.5中运行。

0

Django会自动生成默认名称的管理模板,因此,如果您使用管理员,则必须指定不同的模板名称。

它无法找到您的模板,因为它被生成的模板覆盖了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接