我在Django中有一个模板视图,在该模板上,我有一个下载按钮:
<a href="{% url 'smarts_cfg:template-download' cfg_template.pk %}" class="btn btn-primary">Download file</a>
URL:
path('<int:pk>/edit/download/', smarts_cfg_views.CgfFileDownload.as_view(), name='template-download'),
查看:
class CgfFileDownload(View):
def get(self, request, pk):
content = MODEL_NAME.objects.get(pk=pk).name
response = HttpResponse(content, content_type='text/plain')
response['Content-Disposition'] = 'attachment; filename=%s' % 'testing.txt'
return response
它按预期工作。我想做的是在按下按钮并下载文件之前,我希望用户在模板上填写一个字段,并且我希望将此信息传递到下载视图(而不将其保存在数据库中)。最好的方法是什么? 谢谢!
答案 0 :(得分:0)
用a
替换button
标签。
将form
标签包裹在按钮上方,然后向其中添加type=submit
。
在form
中,您可以添加input
字段。
模板:
<form method="get" action="{% url 'smarts_cfg:template-download' cfg_template.pk %}">
<!-- your input field -->
<input type="text" name="fieldName" />
<button class="btn btn-primary" type="submit">Download file</button>
</form>
查看:
class CgfFileDownload(View):
def get(self, request, pk):
# query parameters are stored in `request.GET` dictionary
fieldValue = request.GET.get('fieldName')
content = MODEL_NAME.objects.get(pk=pk).name
response = HttpResponse(content, content_type='text/plain')
response['Content-Disposition'] = 'attachment; filename=%s' % 'testing.txt'
return response