Django 文件下载从模板视图传递值



我在 django 中有一个模板视图,在该模板上我有一个下载按钮:

<a href="{% url 'smarts_cfg:template-download' cfg_template.pk %}" class="btn btn-primary">Download file</a>

网址:

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

它按预期工作。我想做的是在按下按钮并下载文件之前,我希望用户在模板上填写一个字段,我想将此信息传递给下载视图(不将其保存在数据库中(。最好的方法是什么? 谢谢!

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

相关内容

  • 没有找到相关文章

最新更新