python - 如何在我自己的模板中使用内置的密码重置/更改 View

标签 python django passwords

例如,我可以使用我的模板文件名将 url '^/accounts/password/reset/$' 指向 django.contrib.auth.views.password_reset上下文,但我认为需要发送更多上下文详细信息。

我需要确切知道要为每个密码重置和更改 View 添加什么上下文。

最佳答案

如果您查看 django.contrib.auth.views.password_reset 的来源你会看到它使用了RequestContext .结果是,您可以使用上下文处理器来修改上下文,这可能允许您注入(inject)您需要的信息。

b-list 有很好的introduction to context processors .

编辑(我似乎对实际问题感到困惑):

您会注意到 password_reset 采用名为 template_name 的命名参数:

def password_reset(request, is_admin_site=False, 
            template_name='registration/password_reset_form.html',
            email_template_name='registration/password_reset_email.html',
            password_reset_form=PasswordResetForm, 
            token_generator=default_token_generator,
            post_reset_redirect=None):

检查 password_reset了解更多信息。

... 因此,使用 urls.py 如下:

from django.conf.urls.defaults import *
from django.contrib.auth.views import password_reset

urlpatterns = patterns('',
     (r'^/accounts/password/reset/$', password_reset, {'template_name': 'my_templates/password_reset.html'}),
     ...
)

django.contrib.auth.views.password_reset 将调用匹配 '/accounts/password/reset' 与关键字参数 template_name = ' 的 URL my_templates/password_reset.html'.

否则,您不需要提供任何上下文,因为 password_reset View 会自行处理。如果您想查看可用的上下文,可以触发 TemplateSyntax 错误并查看堆栈跟踪,找到带有名为 context 的局部变量的框架。如果你想修改上下文,那么我上面所说的上下文处理器可能是要走的路。

总而言之:您需要做什么才能使用自己的模板?在调用 View 时为 View 提供 template_name 关键字参数。您可以通过将字典作为 URL 模式元组的第三个成员来为 View 提供关键字参数。

关于python - 如何在我自己的模板中使用内置的密码重置/更改 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/388800/

相关文章:

python - Python中最好的词干提取方法是什么?

python - Windows路径中的百分号

python - 如果页面不是英文,如何使用 sparql 和 dbpedia 检索 wikipageID

python - Django 模型属性 - 计算模型多个实例的外键数量

c - 如何将二进制转换为句子

python - 通过@property 订购 Django 查询集

python - 根据先前的字段值选择过滤 Django 管理字段中的值列表

django - django request.POST到底做了什么以及如何使用它?

Mysql无密码登录、有密码被拒绝

string - VB6使用密码加密文本