ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【Django Admin】django-import-export, 导出数据+PRO

2022-06-28 23:31:43  阅读:225  来源: 互联网

标签:widget name Field Admin attribute PRO django column import


# 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

 

 

图:

 

 

 

标签:widget,name,Field,Admin,attribute,PRO,django,column,import
来源: https://www.cnblogs.com/wanghong1994/p/16421671.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有