django - Django 使用 CBV 将数据导出到 csv 文件
问题描述
我正在寻找export data
从数据库到不同文件格式(.csv、.json、.xls ...)的文件。
这个想法应该是:用户转到一个新模板并可以访问许多下载按钮。当它点击一个时,他会下载所选格式的文件。
我有这样的看法:
class Exports(ListView):
template_name = 'exports.html'
context_object_name = 'exports'
def export_categories_csv(request):
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="categories.csv"'
writer = csv.writer(response)
writer.writerow(['id', 'name'])
categories = Category.objects.all().values_list('id', 'name')
for category in categories:
writer.writerow(category)
return response
def get_context_data(self, **kwargs):
self.export_categories_csv()
return super(HomeView, self).get_context_data(**kwargs)
我的 urls.py 文件如下所示:
url(r'^exports$', Exports.as_view(), name='exports'),
以及相关的模板:
{% load staticfiles %}
{% load i18n %}
{% block main %}
<a href="{% url 'exports' %}" class="btn btn-default">Export all categories in CSV</a>
{% endblock main %}
如何创建不同的按钮并在同一页面中显示这些按钮?以及如何在同一类中的每个按钮和每个函数之间建立链接。
到目前为止,问题是:
导出缺少查询集。定义 Exports.model、Exports.queryset 或覆盖 Exports.get_queryset()。
解决方案
推荐阅读
- linux - 通过powershell检查远程linux机器中服务状态的语法
- hibernate - 在 intelliji 中生成持久性映射,错误“无法解析‘字符串’”
- r - R 代码 (Rstats) 根据长格式数据中的列计算失业率
- azure - 将对 Azure 静态 Web 应用程序的访问限制为单个租户
- angular - 无法绑定到“kendoDropDownTreeHierarchyBinding”,因为它不是“kendo-dropdowntree”的已知属性
- python - 导入库失败:在机器人框架中
- php - 自定义 WooCommerce 单品分享图标
- amazon-web-services - Terraform 0.15 - 多个提供者 \ 区域和 Guardduty
- laravel - laravel 8中“服务”的下拉过滤器
- javascript - javascript 动态导入(路径)中的 [路径] 可以是变量吗?