• 【Django Admin Pro】djangoimportexport, 导出数据+PRO


    # settings.py
    
    
    INSTALLED_APPS = [
        'import_export',
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    ]
    # admin.py
    
    from import_export.admin import ExportActionModelAdmin
    
    @admin.register(UserInfo)
    class UserInfoAdmin(ExportActionModelAdmin):
    
        list_display = ("DEMO")
    
        list_per_page = 10
    
        # 配置导出数据
        resource_class = UserinfoResource
    #export_config.py
    
    """" 导出配置  """
    from .cont import type_interest_choices
    from .models import UserInfo
    from import_export import resources, widgets
    from import_export.fields import Field
    
    
    # 账号状态 自定义返回结果 class is_staff_widget(widgets.BooleanWidget): def render(self, value, obj): """ 如果模型字段做了`null=True`的设置,这里就可以处理“真、假、未知”三种状态 """ if value == 0: return "激活" else: return '冻结' # 性别状态 自定义返回结果 class sex_widget(widgets.IntegerWidget): """ 如果模型字段做了`null=True`的设置,这里就可以处理“真、假、未知”三种状态 """ def render(self,value, obj): if value == 0: return "男生" else: return '女生' # 兴趣爱好状态 复选框配合PRO class interest_widget(widgets.CharWidget): """ 复选框的值: type_interest_choices = ( (0, '音乐'), (1, '运动'), (2, '舞蹈'), (3, '游戏'),) """ def render(self,value, obj): string = "" for index in value.split(","): if index: string = string + type_interest_choices[int(index)][1] + "," return string[0:-1] class UserinfoResource(resources.ModelResource): """ attribute: 表名字 column_name: 导出字段名字 widget: 自定义字段值返回值 判断自定义返回值 """ name = Field(attribute='name', column_name='姓名') head = Field(attribute='head', column_name='照片') sex = Field(attribute='sex', column_name='性别',widget=sex_widget()) interest = Field(attribute='interest', column_name='兴趣爱好',widget=interest_widget()) is_staff = Field(attribute='is_staff', column_name='账号状态',widget=is_staff_widget()) age = Field(attribute='age', column_name='年龄') score = Field(attribute='score', column_name='成绩') time = Field(attribute='time', column_name='时间') date = Field(attribute='date', column_name='日期') class Meta: model = UserInfo

    图:

     

  • 相关阅读:
    秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别(续)
    秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
    秒杀多线程第一篇 多线程笔试面试题汇总
    多线程---handlerthread
    AsyncTask使用须知
    Intent
    字典树 trie
    倒排索引
    百度大搜 算法的实习
    学习路径
  • 原文地址:https://www.cnblogs.com/wanghong1994/p/16421671.html
Copyright © 2020-2023  润新知