首页 > 解决方案 > 使用 ImportExport Module Django 从 csv 为用户创建用户登录名和密码

问题描述

我想使用 ImportExport 模块 Django 使用 CSV 文件创建新用户的登录名和随机/相同的密码。我尝试了很多例子,但没有用。你能建议什么吗?我什至尝试在导入 csv 文件中设置密码字段。让我知道您可以共享以实现此目的的任何教程/链接。

标签: djangoauthenticationdjango-import-export

解决方案


django-import-export 包含几个钩子,您可以在插入数据库之前使用它们来操作数据。这似乎是为每个用户生成随机密码的理想方式。

您可以将其与 Django 的make_random_password()功能结合使用。在导入电子表格中设置密码似乎不是一个好主意,但也许您出于某种原因需要这样做。

您将需要创建自己的 Resource 子类,并覆盖before_save_instance(),例如:

class UserResource(resources.ModelResource):

    def before_save_instance(self, instance, using_transactions, dry_run):
        pw = User.objects.make_random_password()
        instance.set_password(pw)

    class Meta:
        model = User
        fields = ('id', 'username', 'password')
        import_id_fields = ['id']

推荐阅读