vue表单中批量导入功能_idcops 中批量导入在线设备

本文介绍了在Django IDCops平台上如何实现批量导入在线设备功能,涉及外键和多对多字段的数据处理,以及数据清理和校验的详细步骤。文章提供了一种针对特定模型进行数据导入的方法,并分享了Gitee上的相关代码提交链接。
摘要由CSDN通过智能技术生成

django-idcops 平台之前一直都没开发在线设备导入的功能,刚好一些定制的系统有这个功能的需求,所以便把批量导入在线设备的功能完善了。

Django 框架中数据的导入和导出有很大的区别,导出的时候可以利用框架model已有的数据解析方法将数据按照一定的规则导出。

而导入则需要根据具体model开发相关的数据解耦方法才能继续进行,idcops 中大量使用了必填外键,必填字符串,多对多这种model字段类型。因此,在开发批量导入在线设备这一功能时就需要写更多的耦合函数。

面向对象,把idcops中Online这个模型的字段类型了解一波先:

(env) PS C:\Users\shoutian\Desktop\django-idcops> python .\manage.py shell>>> from idcops.models import Online>>> for f in Online._meta.get_fields(): f, "{} 必填:{}".format(f.verbose_name, not f.blank)... (, 'ID 必填:False')(, '系统标记 必填:False')(, '创建人 必填:True')(, '修改人 必填:False')(, '创建日期 必填:True')(, '修改日期 必填:False')(, '已启用 必填:False')(, '已删除 必填:False')(, '所属机房 必填:False')(, '设备编号 必填:True')(, '所属机柜 必填:True')(, '所属客户 必填:True')(, '设备SN号 必填:True')(, 'IP地址 必填:False')(, '设备型号 必填:True')(, '设备类型 必填:True')(, '状态 必填:True')(, '设备U位 必填:False')(, 'PDU接口 必填:False')(, '设备标签 必填:False')(, '备注信息 必填:False')>>>

进一步提取必须填写的字段如下:

>>> for f in Online._meta.get_fields(): (f, f.verbose_name) if not f.blank else None ... (, '创建人')(, '创建日期')(, '设备编号')(, '所属机柜')(, '所属客户')(, '设备SN号')(, '设备型号')(, '设备类型')(, '状态')>>>

因在线设备涉及到机柜中展示具体所在位置,所以,设备U位也是必填的,它是一个多对多字段。另外还有pdus和tags是可选填的多对多字段。最终整理的字段如下:

>>> must_fields = [f.name for f in Online._meta.get_fields() if not f.blank]     >>> extra = ['units', 'pdus', 'tags']>>> must_fields + extra['creator', 'created', 'name', 'rack', 'client', 'sn', 'model', 'style', 'status', 'units', 'pdus', 'tags&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值