从自定义 Django 用户模型中删除密码
Remove password from custom Django User model
如何在自定义用户模型中删除用户 table 和用户 class 中的密码?
我正在使用 django-rest-framework 令牌身份验证,所以我不需要密码字段。
这是我的模型:
class CustomUserManager(BaseUserManager):
def create_user(phone, name=None):
return User.objects.create(
name=name, phone=phone)
def create_superuser(name, phone=None):
pass
class User(AbstractBaseUser):
"""
Custom django User model.
"""
name = models.CharField(max_length=30,
null=True, validators=[validate_name])
phone = PhoneNumberField(unique=True, blank=False, null=False)
objects = CustomUserManager()
USERNAME_FIELD = 'phone'
REQUIRED_FIELDS = []
只需覆盖密码属性:
password = None
删除密码字段的替代方法是使用 set_unusable_password
,这会将用户标记为未设置密码。
def create_user(phone, name=None):
user = User(name=name, phone=phone)
user.set_unusable_password()
user.save()
return user
如何在自定义用户模型中删除用户 table 和用户 class 中的密码?
我正在使用 django-rest-framework 令牌身份验证,所以我不需要密码字段。
这是我的模型:
class CustomUserManager(BaseUserManager):
def create_user(phone, name=None):
return User.objects.create(
name=name, phone=phone)
def create_superuser(name, phone=None):
pass
class User(AbstractBaseUser):
"""
Custom django User model.
"""
name = models.CharField(max_length=30,
null=True, validators=[validate_name])
phone = PhoneNumberField(unique=True, blank=False, null=False)
objects = CustomUserManager()
USERNAME_FIELD = 'phone'
REQUIRED_FIELDS = []
只需覆盖密码属性:
password = None
删除密码字段的替代方法是使用 set_unusable_password
,这会将用户标记为未设置密码。
def create_user(phone, name=None):
user = User(name=name, phone=phone)
user.set_unusable_password()
user.save()
return user