6

我还是 Django 的新手,并且对使用内置视图的工作方式有一些疑问。我注意到 djang 在 django.contrib.auth.views.password_change 带有一个内置的密码更改视图。此视图在模板的背景中显示管理站点,而我想提供自己的 css/模板,但保留该视图的形式和功能。我该怎么做?你能把一些东西传递给 urls.py

r'password_change/$', 'django.contrib.auth.views.password_change')

像自定义模板?我不确定执行此操作的正确方法。

4

3 回答 3

11

template_name您可以通过设置参数来指定应该使用的模板:

(r'password_change/$', 'django.contrib.auth.views.password_change', {'template_name': 'path/to/password_reset.html'})

在您的模板中,确保您使用提供的{{ form }}模板变量,一切顺利。

于 2012-12-04T21:06:23.067 回答
6

Django 将首先尝试从您的应用程序加载模板,然后回退。因此,要覆盖 contrib.auth 的模板,您只需要:

  1. auth在您的模板目录中创建一个名为的目录。
  2. 创建一个与预期加载的内置视图同名的模板。
  3. 没有第 3 步。
于 2012-12-04T21:03:56.390 回答
0

您还可以通过以下方式提供成功更改的 url:

url(r'^password/$', 'django.contrib.auth.views.password_change', {'post_change_redirect' : '/password-changed/','template_name': 'password.html'},),
于 2014-10-02T21:34:49.070 回答