美文网首页
django-admin 后台批量导入数据

django-admin 后台批量导入数据

作者: 金融测试民工 | 来源:发表于2020-11-28 16:38 被阅读0次

        有时候,我们需要批量往数据库插入数据,如果能通过django admin后台的拓展配置实现,就再好不过了。

         在网上找到一个现成的插件,通过简单配置就可实现admin后台的文件上传导入,赞!

    这里以实际项目中的一个model为例,看下配置的步骤

    首先我们要安装 一个插件,这个插件 既支持导入也可以导出。

    pip install django-import-export

    在我们的settings 的installed_app 里添加上这个app

    INSTALLED_APPS = [

      ...,

        'import_export',

    ]

    接下来,结合我自己的model来配置咯

    我的model如下:

    class SensitiveColumn(models.Model):

        """sensitive column for desensitization """

        db = models.CharField(max_length=100, verbose_name='数据库')

        table = models.CharField(max_length=100, verbose_name='表')

        column = models.CharField(max_length=100, verbose_name='字段')

        comment = models.CharField(max_length=100, verbose_name='注释', blank=True, null=True)

        class Meta:

            verbose_name = u'敏感字段'

            verbose_name_plural = u'敏感字段表'

    在这个model所在的app下创建resource.py 文件:

    from import_export import resources

    from common.models import SensitiveColumn

    class SensitiveColumnResource(resources.ModelResource):

        """import"""

        class Meta:

            model = SensitiveColumn

            import_id_fields = ['db', 'table', 'column'] # 这里决定了update_or_create,可以避免重复导入

    接着写我们的admin.py文件:

    from import_export.admin import ImportExportModelAdmin

    from .resource import SensitiveColumnResource

    from .models import SensitiveColumn

    @admin.register(SensitiveColumn)

    class SensitiveColumnsAdmin(ImportExportModelAdmin):

        resource_class = SensitiveColumnResource

        list_display = ('id', 'db', 'table', 'column', 'comment')

    简单配置之后我们就可以在django-admin 后台批量导入啦!看下效果:

    OK, 后台导入就完成了,是不是很简单快捷又实用?!

    还有预览效果噢

    相关文章

      网友评论

          本文标题:django-admin 后台批量导入数据

          本文链接:https://www.haomeiwen.com/subject/jofcwktx.html