django admin 导出数据简单示例

借鉴博客:https://www.lijinlong.cc/django/djxs/2101.html

具体代码实现:

class TipReport(admin.ModelAdmin):
    actions = [‘saveexcel‘]
    list_display = (‘tiptype‘, ‘enabled‘, ‘get_tag‘,‘get_content‘)
    search_fields = (‘get_tag‘, ‘tiptype‘)
    list_per_page = 500

    def get_tag(self, obj):
        if obj.tags.all():
            tag_list = [i.name for i in obj.tags.all()]
            return ‘,‘.join(tag_list)
        else:
            return ‘-‘

    get_tag.short_description = ‘小贴士标签‘

    def get_content(self, obj):
        if obj.content:
            return obj.content
        elif obj.image:
            return mark_safe(‘<a href="%s">%s</a>‘ % (obj.image.url, obj.image.url))
        else:
            return ‘-‘

    get_content.short_description = ‘内容‘

    def saveexcel(self, request, queryset):
        Begin = xlwt.Workbook()
        sheet = Begin.add_sheet(‘小贴士记录‘)
        cols = 0
        for query in queryset:
            sheet.write(cols, 0, str(query.tiptype))
            sheet.write(cols, 1, str(query.enabled))
            # for i in unicode(query.tags.all()):
            sheet.write(cols, 2, unicode(query.tags.all()))
            print type(query.content)
            sheet.write(cols, 3, unicode(query.content))

            cols += 1

        Begin.save(‘{}‘.format("result.xls"))
        def file_iterator(filename, chuck_size=512):
            with open(filename, ‘rb‘) as f :
                while True:
                    c = f.read(chuck_size)
                    if c:
                        yield c
                    else:
                        break
        response = StreamingHttpResponse(file_iterator(‘{}‘.format("result.xls")))
        response[‘Content-Type‘] = ‘application/octet-stream‘
        response[‘Content-Disposition‘] = ‘attachment;filename="{}"‘.format("result.xls")
        return response
    saveexcel.short_description = ‘导出数据‘
admin.site.register(Tip, TipReport)

原文地址:https://www.cnblogs.com/haiyan123/p/9223530.html

时间: 2024-07-31 16:09:38

django admin 导出数据简单示例的相关文章

Django返回json数据用法示例

最近在写前端ajax发送请求到后台,结果数据提交成功,但是一直未执行成功回调函数,经过多番查找资料,终于找到答案. 本文实例讲述了Django返回json数据用法.分享给大家供大家参考,具体如下: 1.前端.jQuery发送GET请求,并解析json数据.getJSON方法可参考这里. ? 1 2 3 4 5 url = "http://example/?question=" + question + "&rand=" + Math.random(); $.

Django rest framework + Vue简单示例

一.创建Vue项目 修改源:npm config set registry https://registry.npm.taobao.org         (建议修改) 创建脚手架:vue init webpack Vue项目名称 基本插件: axios,发送Ajax请求 vuex,保存所有组件共用的变量 vue-cookies,操作cookie 二.流程 vue项目基本目录结构 1.创建脚手架 vue init webpack Vue项目名称 运行 npm run dev 2.App.Vue中

HtmlAgilityPack抓取搜房网数据简单示例

HtmlAgilityPack是一个开源的解析HTML元素的类库,最大的特点是可以通过XPath来解析HMTL,如果您以前用C#操作过XML,那么使用起HtmlAgilityPack也会得心应手.目前最新版本为1.4.6. 程序示例如下: 代码如下: using HtmlAgilityPack; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using

使用IMP导出数据备份并简单FTP实现异地存储

使用IMP导出数据备份并简单FTP实现异地存储 简介情况: 一共3个服务器 21 14 130 21 生产服务器 14 测试服务器(备份1) 130 备份服务器(备份2) 21上做简单导出数据库备份 ---–autobackup.bat-----每天00:00运行 备份 del d:\ncdatabackup\dmp\xxpc_*.dmp del d:\ncdatabackup\log\xxpc_*.log exp ncjxpc/****** file=d:\ncdatabackup\dmp\x

Postgresql数据库数据简单的导入导出

Postgresql数据库数据简单的导入导出 博客分类: DataBase postgres 命令操作: 数据的导出:pg_dump -U postgres(用户名)  (-t 表名)  数据库名(缺省时同用户名)  > c:\fulldb.sql 数据的导入:psql -U postgres(用户名)  数据库名(缺省时同用户名) < C:\fulldb.sql pgAdmin操作: 数据的导出:在库名上右击-->backup-->ok,即将数据保存到.backup文件中. 数据

Django --&gt;admin后台(后台管理可以直接往数据库添加数据)

一.使用pymysql时,必须加这两行(#如果使用mysql的数据库,请进行伪装 pymysql伪装为MySQLdb) import pymysqlpymysql.install_as_MySQLdb() #如果使用mysql的数据库,请进行伪装 pymysql伪装为MySQLdb 二.编辑数据库内容 (路径:/学习/接口自动化/mjz/user/models.py) from django.db import models # Create your models here. class Ca

Springboot使用POI实现导出Excel文件示例

Springboot使用POI实现导出Excel文件示例 前面讲述了使用POI导出Word文件和读取Excel文件,这两个例子都相对简单,接下来要讲述的使用POI导出Excel文件要复杂得多,内容也会比较长.创建表头信息表头信息用于自动生成表头结构及排序public class ExcelHeader implements Comparable<ExcelHeader>{/**  * excel的标题名称  */private String title;/**  * 每一个标题的顺序  */p

Django学习【第28篇】:Django Admin的相关知识

Django Admin的相关知识 一.面向对象复习 1.类的继承 class Base(object): def __init__(self,val): self.val = val def func(self): self.test() print(self.val) def test(self): print("Base.test") class Foo(Base): def test(self): print("FOO.test") # def func(s

Django Admin的相关知识

Django Admin的相关知识 一.面向对象复习 1.类的继承 class Base(object): def __init__(self,val): self.val = val def func(self): self.test() print(self.val) def test(self): print("Base.test") class Foo(Base): def test(self): print("FOO.test") # def func(s