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)'。我會盡快回復它。 –