【问题标题】:Django password change view formDjango 密码更改视图表单
【发布时间】:2012-12-04 20:55:06
【问题描述】:

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

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

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

【问题讨论】:

    标签: django change-password


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      1. 在您的模板目录中创建一个名为auth 的目录。
      2. 创建一个与预期加载的内置视图同名的模板。
      3. 没有第 3 步。

      【讨论】:

      • 那不是反过来吗?先上项目模板目录,然后回退到应用?
      • “你的应用程序”是指 Django 项目。我在“步骤 1”中引用的模板目录是 project 中的主模板目录。如果您添加一个与 Django 中已经存在的目录同义的目录,您的模板目录将覆盖内置目录。
      【解决方案3】:

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

      url(r'^password/$', 'django.contrib.auth.views.password_change', {'post_change_redirect' : '/password-changed/','template_name': 'password.html'},),
      

      【讨论】:

      • castilo,您是在解决已接受的答案还是问题?试着让你的答案更清楚一点
      猜你喜欢
      • 2022-10-07
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 2020-04-07
      相关资源
      最近更新 更多