• 【Django】admin后台自定义导出全部数据并且返回自定义中文名


        def export_as_excel_all(self, request, queryset):
    
            # queryset 是前端勾选的
    
            meta = self.model._meta
            field_names_raw = [field.name for field in meta.fields]  # 原数据表字段
            field_names = []
    
            # 自定义文字名
            for data in field_names_raw:
                field_names.append(models.Username._meta.get_field(data).verbose_name)
    
            response = HttpResponse(content_type='application/msexcel')  # 定义响应内容类型
            response['Content-Disposition'] = f'attachment; filename={meta}.xlsx'  # 定义响应数据格式
            wb = Workbook()  # 新建Workbook
            ws = wb.active  # 使用当前活动的Sheet表
            ws.append(field_names)  # 将模型字段名作为标题写入第一行
    
            # 遍历的对象
            queryset = models.Username.objects.all()
            for obj in queryset:
                for field in field_names_raw:
                    data = [f'{getattr(obj, field)}' for field in field_names_raw]  # 将模型属性值的文本格式组成列表
    
                ws.append(data)  # 写入模型属性值
            wb.save(response)  # 将数据存入响应内容
            return response
    
        export_as_excel_all.short_description = '导出全部'  # 该动作在admin中的显示文字
  • 相关阅读:
    Halcon二维仿射变换实例探究
    redis主从+哨兵实战
    单点安装redis+哨兵
    一个学习技术不错的网站
    reset master 不能乱用呀
    MySQL 5.7基于GTID的主从复制实践
    『浅入深出』MySQL 中事务的实现
    使用二进制包安装mysql
    jenkins+gitlab
    mysql的Innodb存储引擎提一嘴
  • 原文地址:https://www.cnblogs.com/wanghong1994/p/16044740.html
Copyright © 2020-2023  润新知