gpt4 book ai didi

python - 在 django 中创建 User 对象的各种方法有什么区别?

转载 作者:行者123 更新时间:2023-12-02 09:03:45 26 4
gpt4 key购买 nike

我进行了搜索,但找不到正确的答案。目前在 django 中,我们有三种方法来使用自定义管理器创建用户 -

1) 通过创建对象实例并对其调用 save() -

u = User(name="some_name", password="some_password")
u.save()

2) 通过在管理器上调用 create() -

u = User.objects.create(name="some_name", password="some_password")

3) 通过在管理器上调用 create_user() -

u = User.objects.create_user(name="some_name", password="some_password")

诸如它们每个内部如何工作以及它们如何相似和不同之类的信息将非常有帮助。

最佳答案

方法 1) 和 2) 是创建模型实例的通用方法。它们不执行任何特定于 User 模型的操作。

这意味着您设置为密码的值不会经过哈希处理,而是按原样保存。 Django 不会将其识别为正确加盐和散列的密码,并且您将无法登录。

要正确设置密码,请使用User.set_password():

u = User(name="some_name")
u.set_password("some_password")
u.save()

请注意,如果没有额外的数据库查询,则无法对方法 2) 执行相同操作。

方法 3) 是一个方便的函数,用于处理 User 模型的所有细节,例如对密码进行哈希处理。

关于python - 在 django 中创建 User 对象的各种方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32667830/

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