【发布时间】:2018-04-09 04:37:18
【问题描述】:
我正在尝试将一些数据导出到可下载的 csv 文件。当我在我的网站上单击“导出”按钮时,一切正常,直到我收到405 响应。 post 方法按预期工作,在 response 我看到所有预期的数据。下面的过滤进程也可以正常工作。
这是视图类:
class ExportInvoicesToCsvView(View, IsSuperuserMixin):
http_method_names = ['post', 'get']
def post(self, request, *args, **kwargs):
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = (
'attachment; filename=raport.csv'
)
writer = csv.writer(response, delimiter=';')
filters = json.loads(self.request.body.decode('utf8'))
data = Data.objects.filter(filters)
writer.writerow([
'data.a', 'data.b', 'data.c', 'data.d', 'data.e'
])
return response
url配置如下:
url(
r'^invoices-csv/$',
ExportInvoicesToCsvView.as_view(),
name='invoices-csv'
),
还有html模板:
<a href="{% url 'accountant:bills:invoices-csv' %}" type="button" class="btn btn-sm btn-default"
ng-click="getSelected()">
<i class="fa fa-files-o fa-2x pull-left"></i>
{% trans 'Exportuj do csv' %}
</a>
编辑 这是控制台日志。
Method Not Allowed (GET): /accountant/bills/invoices-csv/
[27/Oct/2017 16:41:12] "GET /accountant/bills/invoices-csv/ HTTP/1.1" 405 0
[27/Oct/2017 16:41:15] "POST /accountant/bills/invoices-csv/ HTTP/1.1" 200 0
正如我所见,使用的方法存在某种问题。尽管如此,我还是能够进入post 方法并获取我想要的数据。
【问题讨论】:
标签: python django csv http-status-code-405