作者:郑谊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.
推荐阅读
-
如何解决《有没有办法在ElasticsearchRepository中使用规范?》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《禁用渴望的关系》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《python中的排序列表-优先》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《如何找到逻辑回归模型的特征的重要性?》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《如何通过CanvasDrawBitmap绘制位图的一部分》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《react-bootstrap-table双头》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《Python:从"元组列表"生成一组"元组",不考虑顺序》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《Spring从磁盘上的外部文件夹获取文件和图像,在webapps之外?》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《Perl重试闹钟》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《Mixinig异步上下文管理器并直接等待asyncio》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《改造GSON响应摘要映射》经验,为你挑选了0个好方法。 ...
[详细]
-
如何解决《减少案例类模型的Slick定义中的样板》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《我可以在C#中找到BigInteger的位数吗?》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《可视化免费Monad》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《Thread.Sleep(2500)vs.Task.Delay(2500).Wait()》经验,为你挑选了2个好方法。 ...
[详细]
-
如何解决《C#代码在Unity中不起作用》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《在Swift中的UIPopoverController上设置多个箭头方向》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《带有指示器和下一个/上一个按钮的Onsen-UICarousel》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《Python:它不允许我使用Tkinterroot=Tk()错误》经验,为你挑选了1个好方法。 ...
[详细]
-
如何解决《对数组进行排序,以便第一个和最后一个元素形成"对"》经验,为你挑选了1个好方法。 ...
[详细]