首页 > 其他分享 >django 配置admin 数据管理,增加数据批量上传下载功能

django 配置admin 数据管理,增加数据批量上传下载功能

时间:2023-04-13 10:23:50浏览次数:40  
标签:name admin 上传下载 django models import verbose

在使用django-admin带来直接管理数据库带来的便利的同时,我们希望数据能批量上传,为了达到此目的,我们需要django-admin-export 模块

一、安装模块

 pip3 install django-import-export -i https://mirrors.aliyun.com/pypi/simple/

二、settings.py注册模块

INSTALLED_APPS = [
    'simpleui',
    'daterange_filter',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 'app01',
    'monitor01',
    'import_export'

]

三、准备Module数据表,admin后台注册

modules.py

# Resource 资源列表
class Resource(models.Model):
    name = models.CharField(max_length=256, verbose_name='资源名称')#verbose_name表示admin管理时显示的中文
    uid = models.CharField(max_length=32, verbose_name='账号UID')
    namespace = models.CharField(max_length=32, verbose_name='资源分类(NameSpace)')#verbose_name表示admin管理时显示的中文
    instance_id = models.CharField(max_length=64, verbose_name='实例ID')
    region_select = (
        ("cn-beijing-6", "华北1(北京)"),
        ("cn-shanghai-2", "华东1(上海)"),
        ("cn-hongkong-2", "中国香港"),
        ("cn-guangzhou-1", "华南1(广州)"),
        ("ap-singapore-1", "新加坡"),
        ("eu-east-1", "俄罗斯(莫斯科)"),
        ("cn-beijing-fin", "华北金融1(北京)专区"),
        ("eu-east-1", "华东金融1(上海)专区"),
        ("cn-southwest-1", "西南1(重庆)"),
        ("cn-central-1", "华中1(武汉)"),
        ("cn-northwest-1", "西北1区(庆阳)"),
    )
    '''
    https://docs.ksyun.com/documents/6477
    '''
    region = models.CharField(max_length=32, choices=region_select, verbose_name='所在地区', blank=False)

    # 关联查询的时候展示的中文名称
    def __str__(self):
        return self.name

    # admin后台项目中文显示设置
    class Meta:
        verbose_name = "客户资源"
        verbose_name_plural = "客户资源"
        db_table = 'monitor01_resource'

admin.py 在admin管理模块中注册

from import_export.admin import ImportExportModelAdmin
from django.contrib import admin
# from django.utils.safestring import mark_safe
from django.utils.html import format_html
# from django.forms.widgets import TextInput
from django.db import models as dbmodels

# Register your models here.
from monitor01 import models
from import_export.admin import ImportExportModelAdmin


# ResourceAdmin 支持批量导入数据的Admin
@admin.register(models.Resource)
class ResourceAdmin(ImportExportModelAdmin):
    list_display = ('region', 'namespace', 'uid', 'name', 'instance_id', )
    search_fields = ('namespace', 'uid', 'name', 'instance_id', 'region')
    list_display_links = ('namespace', 'uid', 'name', 'instance_id', 'region')
    pass

测试导出导入

 

 导出直接点击导出按钮

 

 导入时去掉ID列

 

标签:name,admin,上传下载,django,models,import,verbose
From: https://www.cnblogs.com/zhangmingda/p/17312418.html

相关文章

  • 解决vue-elment-admin mock转在线接口地址跨域问题
    devServer:{  port:port,  open:true,  overlay:{   warnings:false,   errors:true  },  //before:require('./mock/mock-server.js')  proxy:{//[process.env.VUE_APP_BASE_API]  vue中env.文件中配置的api名称......
  • Django自带的Admin后台中如何获取当前登录用户
    需求背景在使用Django快速开发一个IT电脑、显示器资产管理小系统的时候,遇到一个问题是,当变更资产设备(新增、修改、删除)的时候,能记录是谁在什么时间进行的变更。确认的是肯定是登录状态,但是在使用Django的signal中获取不到当前登录的用户问题演示1、定义资产设备模型和 自定义日志......
  • 在django中自动删除超过10天的数据
    需求:比如过期10天的产品自动删除记录posting_date=models.DateTimeField(auto_now_add=True)#purge_old_data.pyfromdjango.core.management.baseimportBaseCommand,CommandErrorfromcus_leads.modelsimportCustomerLeadsfromdatetimeimportdatetime,timedel......
  • djangoadmin 过期显示红色字体
    参考:https://docs.djangoproject.com/en/1.8/topics/i18n/timezones/#naive-and-aware-datetime-objects起因:正常的dateime.now()得到的日期不能和Django数据库里面存储的日期数据做对比,两个解决办法:1、是把Django配置里面的USE_TZ设置成False,这样Django的数据就没有时区信息了......
  • Django框架基础(1)
    一、Django的历史1、Django是什么?  Django是使用Python语言开发的一款免费而且开源的Web应用框架。  由于Python语言的跨平台性,所以Django同样支持Windows、Linux和Mac系统。  在Python语言炽手可热的当下,Django也迅速的崛起,在Web开发领域占有一席之......
  • sqlalchemy快速插入数据,scoped_session线程安全,加载类上的装饰器,基本增删改查,django中
    今日内容sqlalchemy快速插入数据sqlalchemy是什么orm框架,跟其他web框架没有必然联系,可以独立使用安装,快速使用,执行原生sql创建表和删除表不能创建数据库不能修改字段(增加,删除)使用orm插入第一步:生成engine对象engine=create_engine("mysql+pymysql://[email protected].......
  • Django配置邮件发送
    需求用户点击忘记密码后会向邮箱发送验证码,之后用户进行验证并修改密码实现步骤登录qq邮箱,点击设置,配置配置IMAP/SMTP点击开启,之后发送短信,成功发送后会看到如下内容在settings.py文件中添加如下内容#MAILEMAIL_HOST='smtp.qq.com'EMAIL_PORT=587#或465EMAIL_......
  • Salesforce Admin管理员中文学习教程_如何高效筛选出具有Admin权限的用户!
    组织中最常见的错误之一就是拥有太多具有系统管理员简档的用户。不幸的是,这在某些行业中非常普遍。实际上这存在着很大的潜在风险。拥有这些权限的用户可能会暴露、窃取或删除组织中的数据,甚至影响到其他用户。防止过多的管理员访问权限是保护Salesforce组织的第一步。但是,仅将......
  • ZR.Admin小改和VUE3版本体验
    前言孔乙己显出极高兴的样子,将两个指头的长指甲敲着柜台,点头说:“对呀,对呀!......回字有四样写法,你知道么?”大家好,我是44岁的大龄程序员码农阿峰。阿峰从事编程二十年了,虽然没有成为架构师,却也用过很多种架构。几年前开始研究JAVA企业级快速开发框架若依,后来发现了它的.net版本......
  • Django 同一Model注册多个modelAdmin
    需求:同一个djangomodel模型,根据不同需求展示注册到admin.py中classUserMsg(models.Model):username=models.CharField(max_length=20,null=False,verbose_name='发送方')hername=models.CharField(max_length=20,null=True,verbose_name='对方姓名')ti......