django export csv是一个可重用的django应用程序,它提供用于创建和呈现csv的通用视图类。
django-csv-export的Python项目详细描述
安装
要开始使用django-export-csv,只需使用
pipinstalldjango-csv-export
用法
将'export_csv'添加到项目的已安装应用程序设置中。
INSTALLED_APPS=['django.contrib.admin','django.contrib.auth',......'export_csv',]
在views.py文件中创建子类ExportCSV,并提供模型属性。
fromexport_csv.viewsimportExportCSVfrom.modelsimportAccountclassAccountCSV(ExportCSV):"""View for creating and rendering CSV of all Account model instances."""model=Customer
在urls.py中,添加指向上面声明的视图类AccountCSV的url。
from.viewsimportAccountCSVurlpatterns=[(r'^account_csv/$',AccountCSV.as_view(),name='account-csv'),]
就这样。它将呈现一个csv文件,其中包含Accountmodel的所有实例的所有字段。
自定义exportcsv视图
注意
所有示例都来自示例项目中的模型。
使用自定义查询集
默认情况下,model的所有实例都包含在(queryset和) CSV。
若要提供自定义queryset,请重写get_queryset方法以返回 自定义查询集。
classAccountCSV(ExportCSV):model=Accountdefget_queryset(self):returnAccount.object.filter(is_active=True)
仅包括模型的某些字段
可能只需要model的一些字段。
这可以通过两种方式实现:
- 提供field_names列表
- 重写get_field_names方法
classAccountCSV(ExportCSV):model=Accountfield_names=['owner','account_no','balance']
classAccountCSV(ExportCSV):model=Accountdefget_field_names(self):return['owner','account_no','balance']
提供文件名
默认情况下,呈现的csv文件名为<;model>;_list.csv。为了 例如,对于Accountmodel,文件名将是account_list.csv。
可以使用两种方法提供自定义文件名。
- 提供filename属性
- 重写get_filename方法。
classAccountCSV(ExportCSV):model=Accountfilename='active_account_list.csv'defget_queryset(self):returnAccount.object.filter(is_active=True)
classAccountCSV(ExportCSV):model=Accountdefget_queryset(self):returnAccount.object.filter(is_active=True)defget_filename(self):return'active_account_list.csv'