一个简单的django管理员允许将查询集导出到xlsx文件。
django-simple-export-admin的Python项目详细描述
django简单导出管理
一个简单的django管理员允许将查询集导出到xlsx文件。在
安装
pip install django-simple-export-admin
使用
pro/设置.py
^{pr2}$- 需要django_static_fontawesome、django_changelist_toolbar_admin和django_simple_export_admin。在
应用程序/模型.py
fromdjango.dbimportmodelsclassCategory(models.Model):name=models.CharField(max_length=32)classBook(models.Model):name=models.CharField(max_length=32)author=models.CharField(max_length=32)category=models.ForeignKey(Category,on_delete=models.SET_NULL,null=True,blank=True)is_published=models.NullBooleanField()published_date=models.DateField(null=True)count=models.IntegerField(default=0)defpreview(self):return"/preview/{0}.png".format(self.pk)preview.short_description="Preview Image Path"classMeta:permissions=[("export_filtered_books","Export all filtered books"),]
应用程序/管理员py
fromdjango.contribimportadminfromdjango_simple_export_admin.adminimportDjangoSimpleExportAdminfromdjango_simple_export_admin.adminimportNullBooleanRenderfromdjango_simple_export_admin.adminimportDateRenderfromdjango_simple_export_admin.adminimportSumfrom.modelsimportBookclassBookAdmin(DjangoSimpleExportAdmin,admin.ModelAdmin):list_display=["name","author"]list_filter=["is_published","published_date","author"]django_simple_export_admin_exports={"filtered-books":{"label":"Export All Filtered Books","icon":"fas fa-book","filename":"Book","fields":[{"field":"forloop.counter1","label":"Index"},{"field":"name","label":"Book Name","footer-value":"Sum:"},{"field":"count","label":"Stock","footer-value":lambda:Sum()},{"field":"category__name"},{"field":"author","label":"Author","empty_value":"-"},{"field":"is_published","label":"Is Published","render":NullBooleanRender("UNKNOWN","YES","NO")},{"field":"published_date","label":"Published Date","render":DateRender()},],"export-filtered":True,"permissions":["django_simple_export_admin_example.export_filtered_books"],}}
label
默认为U(“导出”)。在icon
默认为无表示没有图标。在filename
默认为模型名。在export-filtered
默认值为False,表示始终不过滤地导出所有查询集。在permissions
默认为无,意味着只有超级管理员有权限进行导出。在fields
field
可以是模型实例的字段、模型实例的可调用函数、取模型实例参数的admin的可调用函数。与list_display
中的字段名类似。field == forloop.counter1
将始终显示行索引,例如1、2、3。。。在label
是列的标题。如果缺少标签,field.verbose_名称或者功能。简短描述将首先使用。如果仍然为空,请使用字段名。在render
是一个可调用的对象,它将原始值转换为显示值。在empty_value
仅在未提供render
时工作,它是原始无值的显示值。在footer-value
是显示在最下面一行的值。它可以是一个Aggregate实例,接受该字段的每个项值,最后计算出最终值。它可以是staic值。在start-row-index
是开始写入数据的行索引。从1开始。在xlsx-template
模板xlsx文件路径。在show-header
True或False表示是否显示标头。在
装运的渲染
- django_简单出口_admin.admin.ForceStringRender在
- django_简单出口_admin.admin.DateRender在
- django_简单出口_admin.admin.BooleanRender在
- django_简单出口_admin.admin.NullBooleanRender在
装运骨料
- django_简单出口_管理汇总在
- django_简单出口_管理平均值在
- django_简单出口_管理员计数在
错误报告
请在https://github.com/zencore-cn/zencore-issues报告任何问题。在
释放
v0.1.4 2020/06/24
- 修复循环计数器1开始行索引时出现问题!=1。在
v0.1.3 2020/04/04
- 修复queryset受list_per_页面限制的问题,将其重置为MAX_ROWS=999999。在
- 修复相关字段问题。在
- 将“行索引”更改为forloop.counter1,因为用于相关对象属性。在
- 如果字段标签设置丢失,则首先找到它的字段详细名称或函数简短描述。在
- 使用get_xxx_display()作为选项字段。在
- 添加xlsx模板支持。在
- 添加起始行索引支持。在
- 添加显示标头支持。在
v0.1.2 2020/04/02
- 修复文档。在
v0.1.1 2020/04/02
- 修复页脚值问题。如果在设置中使用聚合实例,则全局使用该实例,因此最终值如果不正确。所以必须动态地添加lambda来创建一个新实例。在
v0.1.0 2020/04/02
- 第一次发布。在
- 项目
标签: