zoukankan      html  css  js  c++  java
  • djangoadmin导出csv

    from django.contrib import admin
    from .models import Order,OrderItem
    from django.http import HttpResponse
    import datetime
    # Register your models here.
    import csv
    def export_to_csv(modeladmin, request, queryset):
        opts=modeladmin.model._meta
        response=HttpResponse(content_type='text/csv')
        response['Content-Disposition']='attachment;filename={}.csv'.format(opts.verbose_name)
        writer=csv.writer(response)
        fields = [field for field in opts.get_fields() if not field.many_to_many and not field.one_to_many]
        writer.writerow([field.verbose_name.encode('utf-8') for field in fields])
        for obj in queryset:
            data_row=[]
            for field in fields:
                value=getattr(obj,field.name)
                if isinstance(value,datetime.datetime):
                    value=value.strftime('%d/%m/%Y')
                data_row.append(value)
            writer.writerow(data_row)
        return response
    export_to_csv.short_description = '导出ESV'
    
    class OrderItemInline(admin.TabularInline):
        model = OrderItem
        raw_id_fields = ['product']
    
    
    
    class OrderAdmin(admin.ModelAdmin):
        list_display = ['id', 'name', 'email',
                        'address', 'postal_code', 'city', 'paid',
                        'created', 'updated']
        list_filter = ['paid', 'created', 'updated']
        inlines = [OrderItemInline]
        actions = [export_to_csv]
    
    admin.site.register(Order, OrderAdmin)
    

      

  • 相关阅读:
    poj2823单调队列认知
    有关二叉树的三序遍历的题目
    hdu4757 可持续字典树
    ZOJ2532判断边是否是割集中的边
    poj2455 k条路最小化最长边
    乘法逆元模板
    poj1699 KMP+壮压DP
    Innodb存储引擎——非聚集索引
    java集合框架笔记
    jvm垃圾回收
  • 原文地址:https://www.cnblogs.com/similarface/p/5587627.html
Copyright © 2011-2022 走看看