Django如何将一个按钮链接到http响应

时间:2017-09-27 12:19:40

标签: django django-forms

我想创建一个需要登录的简单页面,并且有一个按钮,点击它会下载一个csv文件。

下面的代码运行良好,但这会直接下载该文件。

df.groupby(df.index.get_level_values('Date').hour).mean()

我可以创建一个按钮并将视图链接到它的模板,但是如何从中返回上面的响应。

@login_required(login_url='/admin/login/')
def index(request):

  response = HttpResponse(content_type='text/csv')
  response['Content-Disposition'] = 'attachment; filename="data.csv"'

  writer = csv.writer(response)
  writer.writerow(['First row', 'Foo', 'Bar', 'Baz'])
  writer.writerow(['Second row', 'A', 'B', 'C', '"Testing"', "Here's a quote"])

  return response  

1 个答案:

答案 0 :(得分:0)

创建一个单独的视图,返回csv文件,并设置表单以将其提交指向该视图:

<form action="{% url 'my_csv_view' %} method="get">
    <input type="submit" value="Click" name="mybtn">
</form>

在这种情况下,您的csv文件将由名为“my_csv_view”的视图提供,但您可以将其更改为更适合您的内容。