django 如何知道 create_user() 函数中的密码是什么
How does django knows what the password is in create_user() function
我正在关注 django's doc 创建自定义用户模型,但我对 create_user()
和 create_superuser()
的定义感到困惑。定义 create_user()
时,传递的密码参数是 None
def create_user(self, email, date_of_birth, password=None):
# create user here
...
创建时 create_superuser()
密码由调用者提供。
def create_user(self, email, date_of_birth, password=None):
# create user here
...
django 怎么知道 create_user()
函数中的密码是什么?如果这是一个菜鸟问题,我很抱歉,但我真的需要理解。你能帮我理解这里的概念吗?谢谢。
create_user
方法定义中的password=None
意味着None
是密码的默认值,但仍然可以由调用者提供。
当您不为新用户提供密码或您为密码传递 None
时,Django 将创建具有不可用密码的用户,这意味着用户将无法使用用户名和密码登录。
它在您想要强制执行其他身份验证方式(如 OAuth 或 OpenID 等)的情况下很有用。
相关部分代码注释:
检查UNUSABLE_PASSWORD_PREFIX
方法make_password
为什么 create_superuser
需要密码?其实不然。您始终可以将 None
作为密码传递,但恕我直言,这是因为您需要超级用户的特殊权利和特权,并且您不像普通用户那样经常创建超级用户。
我正在关注 django's doc 创建自定义用户模型,但我对 create_user()
和 create_superuser()
的定义感到困惑。定义 create_user()
时,传递的密码参数是 None
def create_user(self, email, date_of_birth, password=None):
# create user here
...
创建时 create_superuser()
密码由调用者提供。
def create_user(self, email, date_of_birth, password=None):
# create user here
...
django 怎么知道 create_user()
函数中的密码是什么?如果这是一个菜鸟问题,我很抱歉,但我真的需要理解。你能帮我理解这里的概念吗?谢谢。
create_user
方法定义中的password=None
意味着None
是密码的默认值,但仍然可以由调用者提供。
当您不为新用户提供密码或您为密码传递 None
时,Django 将创建具有不可用密码的用户,这意味着用户将无法使用用户名和密码登录。
它在您想要强制执行其他身份验证方式(如 OAuth 或 OpenID 等)的情况下很有用。
相关部分代码注释:
检查
UNUSABLE_PASSWORD_PREFIX
方法make_password
为什么 create_superuser
需要密码?其实不然。您始终可以将 None
作为密码传递,但恕我直言,这是因为您需要超级用户的特殊权利和特权,并且您不像普通用户那样经常创建超级用户。