这是我想要完成的:
- 让管理员使用默认方式(用户名和密码)登录到管理页面。
- 让用户使用使用电子邮件而不是密码的自定义用户模型注册/登录到我的网络应用程序。他们还可以关联其他我的管理员不需要的数据。
- 将管理员帐户和用户帐户分离到不同的表中。
我检查了如何通过扩展 AbstracBaseUser 创建自定义用户类,但我得到的结果是我的管理员也成为了新的用户类型。那么我可以让自定义用户模型用于我的应用程序用户,同时保持默认管理系统不变吗?或者我的设计有什么好的替代方案?
最佳答案
推荐的 Django 做法是创建一个指向 User 的 OneToOne 字段,而不是扩展 User 对象 - 这样您就可以通过仅装饰所需的新模型属性(例如)在 Django 的 User 之上构建:
class Profile(models.Model):
user = models.OneToOneField(User,parent_link=True,blank=True,null=True)
profile_image_path = models.CharField(max_length=250,blank=True, null=True)
phone = models.CharField(max_length=250,blank=True, null=True)
address = models.ForeignKey(Address,blank=True,null=True)
is_admin = models.NullBooleanField(default=False,blank=True,null=True)
class Meta:
verbose_name = 'Profile'
verbose_name_plural = 'Profiles'
关于python - 如何在让管理员在 Django 中默认工作的同时为我的应用程序创建自定义用户模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39842758/