我们在大部分项目中使用基于类的视图。当我们尝试创建一个 CSV Mixin 时,我们遇到了一个问题,它允许用户将几乎任何页面的信息导出为 CSV 文件。我们的特殊问题涉及 CSV 文件,但我相信我的问题足够通用,可以与任何文件类型相关。
我们遇到的问题是来自视图的响应正试图转到模板(比如 like from django.views.generic import TemplateView
)。urls.py
我们在文件中指定模板。
url(r'^$', MyClassBasedView.as_view(template_name='my_template.html'))
你怎么能强制响应绕过模板而只返回一个标准HttpResponse
?我猜你需要重写一个方法,但我不确定是哪一个。
有什么建议么?
EDIT1:看来我不清楚我们要做什么。我已经呈现了一个页面(通过基于类的视图),用户将看到信息报告。我需要输入一个“导出到 CSV”按钮供用户按下,它将导出他们页面上的信息并将 CSV 下载到他们的机器上。
将我们的视图重写为基于方法的视图不是一种选择。我们处理几乎所有基于类的视图类型(DetailView、ListView、TemplateView、View、RedirectView 等)