Django:同时返回响应和返回反向

时间:2019-03-22 00:16:50

标签: python django forms url

提交表单后,我希望发生两件事:

  • 重置表单(将表单重新加载为空)/或重定向
  • 以附件形式返回文件

现在,我得到下载文件的对话框,但是表单没有重置/重新加载空/也没有重定向。我可以修改get_success_url,但没有得到下载对话框

我试图弄清楚如何做,但是需要帮助/提示我应该如何解决。

成功接受数据后,在重置表单的同时获得下载对话的解决方案是什么?

下面的简化代码:

urls.py

urlpatterns = [
path('product/csv/', ProductFormView.get_csv, name='product-csv'),
]

views.py

class ProductFormView(FormView):
    form_class = ProductForm
    model = Product

    def form_valid(self, form):
        self.object = form.save()
        return super().form_valid(form)

    def get_success_url(self):
        return reverse('product-csv')

    def get_csv(request):
        csv = FileDB.objects.latest('id').csvfile
        response = HttpResponse(content_type='application/CSV')
        response.write(csv.ToString())
        response['Content-Disposition'] = 'attachment; filename='f" {filename} + .csv"
        return response

0 个答案:

没有答案