Handling request in django inclusion template tag
我是Django的新手,我正在尝试将上传文件表单放入包含标记中。 所以我可以在各种模板中使用它。
我创建了以下包含标记:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #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 HttpResponseRedirect(view_url) upload_url, upload_data = prepare_upload(request, view_url) form = UploadForm() upload_model_list = UploadModel.objects.all().order_by('-pub_date') |
我现在希望将其包含在模板中,所以在我拥有的页面上:
1 2 3 4 5 | #mypage.html {% extends 'base.html' %} {% load upload_files %} {% upload_handler %} |
我收到以下错误:
1 | upload_handler takes 1 arguments |
我应该从模板中传递什么参数?
注册标记时需要添加
1 | @register.inclusion_tag('upload_form.html', takes_context=True) |
默认情况下,
有关更多详细信息,请参阅django关于包含标记的文档。
附注:仔细确定您使用此模板标签的页面,因为视图可能会以某种方式呈现其他表单/处理发布请求,这些请求可能会与您的标记提供的逻辑发生冲突(例如,如果表单验证将被触发,则会触发表单验证。 页面可能会被来自其他表单的帖子请求调用)。 你可以,例如。 另外,如果页面上有多个表单,请检查某些HTML元素的名称是否在