我为Django的auth app创建了自定义用户配置文件模型,以及我无法使用Django Admin登录表单登录的问题 .
注意:用户 is_superuser=1
和 is_staff=1
models.py
=======================
class UserProfile(AbstractUser):
gender = models.IntegerField(choices=GENDER_CHOICES, verbose_name='Gender', default=1)
civil_id = models.CharField(max_length=12, verbose_name='Civil ID')
tel_num = models.CharField(max_length=18, blank=True, verbose_name='Telephone Number')
mob_num = models.CharField(max_length=18, verbose_name='Mobile Number')
dob = models.DateField(verbose_name='Date of birth', null=True)
country = models.ForeignKey(Country, verbose_name='Country', null=True)
province = models.ForeignKey(Province, verbose_name='Province', null=True)
area = models.ForeignKey(Area, verbose_name='Area', null=True)
address = models.CharField(max_length=100)
profile_image = models.ImageField(upload_to=user_directory_path, verbose_name='Profile Image', default='')
secondary_email = models.EmailField(verbose_name='Secondary Email',
help_text='This email address will be used in case of account recovery',
blank=True)
is_verified = models.BooleanField(verbose_name='Verified', default=False)
verification_request = models.CharField(max_length=25, default=generate_verification_code)
is_in_smart_launch = models.BooleanField(default=False, verbose_name='Is profile created in smartlaunch')
branch = models.ForeignKey(Branch, related_name='users', null=True)
并使用 set_password()
保存userprofile
Screenshot:
2 回答
在没有
username
字段的情况下定义自定义用户时遇到类似问题 . 设置is_admin
和is_staff
字段后,管理员登录页面再次起作用 . 我的代码如下所示如果用户不是工作人员,则不能使用管理员登录(因为错误是sais) . 如果你想要一个内置的登录页面,你可以使用
/accounts/login
这是settings.LOGIN_URL
的默认值