gpt4 book ai didi

python - Django 1.9 批量创建新用户未正确散列密码

转载 作者:太空宇宙 更新时间:2023-11-03 12:31:39 24 4
gpt4 key购买 nike

我想从文件中读取一些数据以快速创建多个测试帐户。我更喜欢使用 bulk_create 方法,因为这通常可以更快地向模型添加许多记录。但是,当将 bulk_create 方法与 Django 的用户模型一起使用时,密码未正确散列,这意味着我无法以用户身份登录和注销。

    User.objects.bulk_create([
User(
username=name,
email='sample@email.co.uk',
password='Sample&Password!',
is_active=True,
) for name in f.read().splitlines()
])

Django admin 在每个用户的密码字段中显示以下错误

Invalid password format or unknown hashing algorithm.

然而,第二种方法继续有效(尽管慢得多)。

    for name in f.read().splitlines():
User.objects.create_user(
name,
'sample@email.co.uk',
password="Sample&Password!"
).save()

我的问题是,有没有一种方法可以在 Django 中一次正确地批量创建用户。 Django 这样做是出于某种原因还是这是一个错误?

最佳答案

使用make_password .这确保散列密码存储在您的数据库中。如果 make_password 太慢,see this

from django.contrib.auth.hashers import make_password

User.objects.bulk_create([
User(
username=name,
email='sample@email.co.uk',
password=make_password('Sample&Password!'),
is_active=True,
) for name in f.read().splitlines()
])

关于python - Django 1.9 批量创建新用户未正确散列密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37836882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com