【问题标题】:Passing Custom variables to password_change view in Django将自定义变量传递给 Django 中的 password_change 视图
【发布时间】:2011-09-10 05:05:11
【问题描述】:

我想使用 contrib.auth 中的 password_change 视图。

这就是我所做的:

  1. 创建了一个表单来扩展 PasswordChangeForm 以将 html 类添加到小部件
  2. 创建了registration/password_change.html 模板。因为您从登录状态执行密码更改,所以此模板必须从 base_site.html 继承,该文件向用户显示一堆信息(除了表单)。
  3. 更新了我的 urls.py 以创建 URL 模式,将表单名称传递给视图。

这就是我难过的地方。模板,它根据一些自定义变量呈现内容。例如,模板有一个自定义标签,可以从上下文中获取信息。

business = context.get('business',None)

我的问题是:将特定领域的上下文传递给模板有哪些选择?我应该继续将 password_change 视图(复制和粘贴)重写到我的应用程序视图中吗?

【问题讨论】:

    标签: django django-templates django-views


    【解决方案1】:

    Django 的通用视图为此使用了一个extra_context 参数。但是,auth 按原样提供其视图;你不必使用它们。

    您唯一的选择是简单地重新创建视图。您可以从 password_change 复制代码作为指导,但请确保您了解它的作用,然后再将其放入。

    【讨论】:

    • 感谢您的回答。我认为大多数可重用应用程序都遵循接受 extra_context 然后将额外上下文合并到上下文中的设计模式。但是,contrib.auth 似乎没有遵循该模式。
    猜你喜欢
    • 1970-01-01
    • 2017-04-30
    • 2016-03-26
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 2012-12-13
    相关资源
    最近更新 更多