我正在創建一個帶有自定義用戶身份驗證策略的 Django Web 應用程式:只有超級用戶有密碼,用戶標識欄位是電子郵件欄位。普通用戶只能通過 OAuth 協議登錄,所以我不需要為他們存盤密碼。我通過覆寫和擴展 AbstractBaseUser 類創建了一個自定義用戶。
Django Admin 中有沒有辦法允許使用空白密碼欄位(無法使用的密碼)添加/編輯用戶?謝謝你。
uj5u.com熱心網友回復:
類 UserAccountManager(BaseUserManager):
def _create_user(self, username, password, is_staff, is_superuser, **extra_fields):
if not username:
raise ValueError('Username is required.')
now = timezone.now()
username = self.model.normalize_username(username)
user = self.model(
username=username,
is_staff=is_staff,
is_active=True,
is_superuser=is_superuser,
last_login=now,
date_joined=now,
**extra_fields
)
user.set_password(password)
user.save(using=self._db)
return user
def create_user(self, username=None, password=None, **extra_fields):
return self._create_user(username, password, False, False, **extra_fields)
def create_superuser(self, username, password, **extra_fields):
user = self._create_user(username, password, True, True, **extra_fields)
user.save(using=self._db)
return user
uj5u.com熱心網友回復:
將此以下代碼行添加到您的自定義用戶模型中:
password = models.CharField(_('password'), max_length=128 , blank=True, null=True)
這將允許Django 管理員允許添加沒有密碼的用戶。如果它不起作用,則使用AbstractUser代替AbstractBaseUser。當我為我的專案作業時,我測驗過這種型別的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/400925.html
標籤:Python 姜戈 django-admin django 自定义用户
