处理django包含模板标记中的请求

处理django包含模板标记中的请求,第1张

概述我是Django的新手,我正在尝试将上传文件表单放入包含标记中.所以我可以在各种模板中使用它. 我创建了以下包含标记: #upload_files.py@register.inclusion_tag('upload_form.html')def upload_handler(context): request = context['request'] view_url = 我是Django的新手,我正在尝试将上传文件表单放入包含标记中.所以我可以在各种模板中使用它. @H_502_2@我创建了以下包含标记:

#upload_files.py@register.inclusion_tag('upload_form.HTML')def upload_handler(context):    request = context['request']    vIEw_url = reverse('upload.vIEws.upload_handler')    if request.method == 'POST':        form = UploadForm(request.POST,request.fileS)        if form.is_valID():            form.save()        return @R_301_6822@ResponseRedirect(vIEw_url)    upload_url,upload_data = prepare_upload(request,vIEw_url)    form = UploadForm()    upload_model_List = UploadModel.objects.all().order_by('-pub_date')
@H_502_2@我现在希望将其包含在模板中,所以在我拥有的页面上:

#mypage.HTML{% extends 'base.HTML' %}{% load upload_files %}{% upload_handler %}
@H_502_2@我收到以下错误:

upload_handler takes 1 arguments
@H_502_2@我应该从模板中传递什么参数?

解决方法 注册标记时需要添加takes_context = True以使django将上下文对象传递给函数:
@register.inclusion_tag('upload_form.HTML',takes_context=True)
@H_502_2@默认上下文总是第一个参数然后!

@H_502_2@有关详细信息,请参阅django在inclusion tags上的文档.

@H_502_2@附注:仔细确定您使用此模板标签的页面,因为视图可能会以某种方式呈现其他表单/处理发布请求,这些请求可能会与您的标记提供的逻辑发生冲突(例如,如果表单验证将被触发,则会触发表单验证.页面可能会被来自其他表单的帖子请求调用).你可以,例如.另外检查一些HTML元素的名字是否在request.POST中,如果你在页面上有多个表单!

总结

以上是内存溢出为你收集整理的处理django包含模板标记中的请求全部内容,希望文章能够帮你解决处理django包含模板标记中的请求所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1206932.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存