我目前有一个视图,该视图在提交表单后仅返回word文档。页面/模板完全不变。
def form_view(request):
context = dict()
if request.method == 'POST':
#do a bunch of things
http_word_response = HttpResponse(content_type='application/vnd.openxmlformats-officedocument.wordprocessingml.document')
http_word_response['Content-Disposition'] = 'attachment; filename=%s' % filename
doc.save(http_word_response)
return http_word_response
else:
return render( request, 'mysite/form.html', context)
我想要它,以便它像返回文档一样返回文档,但是然后从上下文字典中更新页面。我知道如何将变量返回到模板中,但是在将其与返回文档组合时遇到了麻烦。
我尝试添加此内容:
return render(request, 'mysite/form.html', context, http_word_response)
而不是return http_word_response
,但是它返回的文档实际上是我的整个html模板文件,而没有返回单词document。
如果需要的话,我并不反对返回URL或链接来下载文件,这种方式一直是最简单的,因为它不会在服务器端保存任何内容。
编辑: 一旦表单上的提交被击中,我想让它返回文档和上下文字典到模板。现在,它仅返回文档。