【Django项目记录:django admin后台将查询结果导出表格】

Django admin后台导出

首先安装导出的插件(包)

pip install django-import-export

根据查询结果导出代码,在app文件夹中添加文件resources.py

from import_export import resources
from .models import *
# 1,列表导出的使用: 重写方法 get_export_order 指定了导出时列的顺序按照 Meta中fields的顺序
# 2,列表导出的使用: 重写方法 get_export_headers 指定了导出时列的标题
class QueryResultsResource(resources.ModelResource):
    def dehydrate_course_type(self, obj):
        return obj.get_course_type_display()
    class Meta:
        model = AttendanceHistory
        fields = ['duty_teacher__name', 'course_type', 'attendance__role','class_time','current_subject','number_change','number_left']  # 选择要导出的字段
    def get_export_headers(self):  # 指定表格的标题
        headers = ['上课老师','课程类别','考勤类别','上课时间','课程主题','课次变化','剩余课次']
        return headers
    def get_export_order(self): # 指定表格中导出字段的顺序
        return self._meta.fields

修改相对应的app的admin后端页面(admin.py)

from django.contrib import admin
from .models import *
from import_export.admin import ExportMixin
from .resources import *
# Register your models here.
class AttendanceHistoryAdmin(ExportMixin, admin.ModelAdmin):
    resource_class = QueryResultsResource # 在admin中添加并使用导出功能
    search_fields = ['student__name','student__phone']
    list_filter = ['duty_teacher','class_time','course_type','attendance']
    list_display = ['id','student', 'teacher','duty_teacher', 'course_type','attendance', 'number_change', 
                    'attendance_class', 'create_at', 'update_at','class_time','number_left']
                    
admin.site.register(AttendanceHistory, AttendanceHistoryAdmin)                    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

走走又停停,人生路上皆风景

不同的你我,不同的风景,祝幸福

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值