0
我想修改我的Django项目身份验证,以便我可以使用我自己的用户模型。更改Django身份验证模型密码字段
我到目前为止工作,但我无法重写“密码”字段。我想将名称更改为“password_hash”。
我已经试过这个经理:
class UserManager(BaseUserManager):
def create_user(self, email_address, full_name, password=None):
if not email_address:
raise ValueError('Users must have an email address')
user = self.model(
email_address = self.normalize_email(email_address),
full_name = full_name,
)
user.set_password(password)
user.save(using=self._db)
return user
def create_superuser(self, email_address, full_name, password_hash):
user = self.create_user(email_address,
password_hash=password_hash,
full_name=full_name,
)
user.is_admin = True
user.save(using=self._db)
return user
但是我得到的错误TypeError: create_superuser() got an unexpected keyword argument 'password'
。
如何阻止create_superuser()预期“密码”并将其更改为“password_hash”。对于用户名,我通过更改USERNAME_FIELD
来完成,但是文档中没有提供类似的密码方法。
由于提前, 马克
是否有错字?你检索'password_hash'参数,但你设置'密码'arg .. – mariodev
啊谢谢,是的,这是一个错字,但它没有解决问题。解决方法是重写'def set_password(self,raw_password): self.password = make_password(raw_password)'。我会尽快回复它。 –