作者:郑谊099_448 | 2023-09-01 16:50
例如,我可以点url '^/accounts/password/reset/$'
到django.contrib.auth.views.password_reset
我的背景下,模板文件名,但我认为需要派遣更多的上下文信息.
我需要确切地知道为每个密码重置和更改视图添加的上下文.
1> Aaron Maenpa..:
如果你看一下django.contrib.auth.views.password_reset的来源,你会看到它使用的RequestContext
.结果是,您可以使用上下文处理器来修改上下文,这可能允许您注入所需的信息.
b-list 对上下文处理器有很好的介绍.
编辑(我似乎对实际问题的看法感到困惑):
你会注意到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'
与关键字参数匹配的URL template_name = 'my_templates/password_reset.html'
.
否则,您不需要提供任何上下文,因为password_reset
视图会自行处理.如果要查看可用的上下文,可以触发TemplateSyntax
错误并查看堆栈跟踪,找到名为local变量的框架context
.如果你想修改上下文,那么我上面提到的有关上下文处理器的内容可能就是这样.
总结:您需要做什么才能使用自己的模板?template_name
在调用视图时为视图提供关键字参数.您可以通过将字典包含为URL模式元组的第三个成员来为视图提供关键字参数.
任何想法,如何让`registration/password_reset_email.html`实际上包含html元素,如:`
`,`
`因为这只发送文本
2> Alex Stewart..:
强烈推荐这篇文章.
我只是将其插入并且工作正常
http://garmoncheg.blogspot.com.au/2012/07/django-resetting-passwords-with.html
很棒的链接,谢谢.对于那些关注链接的人 - django-registration现在包含默认的身份验证视图...所以你要做的就是创建上面链接中详述的模板.另外 - 如果你想避免他所做的所有手工html表单工作,请使用django-crispy-forms.
3> jb...:
您只需要包装现有函数并传入所需的模板.例如:
from django.contrib.auth.views import password_reset
def my_password_reset(request, template_name='path/to/my/template'):
return password_reset(request, template_name)
要看到这个,只需看看内置视图的函数声明:
http://code.djangoproject.com/browser/django/trunk/django/contrib/auth/views.py#L74
这不是最简单的方法.您可以将字典作为URL模式元组的第三部分传入,或者如果您认为必须包装该函数,则可以使用:password_reset = functools.partial(password,template_name ="path/to/my/template" )
4> Lodato L..:
您可以执行以下操作:
添加到您的urlpatterns(r'^/accounts/password/reset/$',password_reset)
将您的模板放在'/templates/registration/password_reset_form.html'中
让您的应用程序在INSTALLED_APPS中的'django.contrib.auth'之前
说明:
加载模板后,将在settings.py中的INSTALLED_APPS变量中搜索它们.订单由INSTALLED_APPS中的定义排名决定,因此您的应用程序位于'django.contrib.auth'之前,您的模板已加载(参考:https://docs.djangoproject.com/en/dev/ref/templates/api /#django.template.loaders.app_directories.Loader).
方法的动机:
我想要更干,不要重复任何视图(由django定义)模板名称(它们已经在django中定义)
我想要一个最小的url.py.
推荐阅读
-
如何解决《MongoDBdataSize如何比storageSize更大?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《使用MicrosoftGraph进行模拟》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《如何有效地运行多CPU内核的Django》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《mutate()在使用美元符号运算符时尝试使用全局变量的值进行提取》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《S3:如果由其他用户创建,则用户无法访问自己的s3存储桶中的对象》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《RxJS:结束三个承诺,区分结果》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《在ZurbFoundation中禁用禁用按钮并启用验证》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《为什么VScode中的问题匹配器不起作用?》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《python版本与json.dumps冲突》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《递归放置的组件不显示》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《在Web组件中扩展元素时,"is"语法有什么意义?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《在Windows10下访问2016年相当大的窗体边界太窄》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《PythonPandas:String包含但不包含》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《为什么PHP允许在一种情况下将文字传递给pass-by-reference参数而不允许其他情况?》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《在我调用delete,c++之后仍然可以访问值》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《如何使AutoMoqCustomization使用StrictMockBehavior?》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《与dplyr和所有的奇怪》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《处理回归(机器学习)中的未分配(null)特征值?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《如何在C中的char数组中添加char/int?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《从VSTS版本管理部署WebSite构建到Azure》经验,为你挑选了2个好方法。 ...
[详细]