我正在尝试为Django中的两组不同的用户实现一个身份验证系统 . 学生(使用他的用户名和密码),开发人员(使用他的电子邮件和密码) . 目前我有一个(通用)UserProfile模型,将由Student,Developer共享 . 这是我的模型代码:
class UserProfile(models.Model):
user = models.OneToOneField(User)
name = models.CharField(max_length=50, null=True, blank=True)
slug = models.SlugField(max_length=50, db_index=True, unique=True)#this will be used as his unique url identifier
objects = UserProfileManager()
class Meta:
abstract = True
class Student(UserProfile):
''' some student specific fields might go here '''
class Developer(UserProfile):
''' some developer specific fields might go here '''
在settings.py中,我给出了:
AUTH_PROFILE_MODULE = 'users.UserProfile'
我正在使用UserProfile模型进行身份验证 . 但是,一旦我介绍了学生,开发人员整个事情搞砸了 . 我正进入(状态
UserProfile没有属性'DoesNotExist'
(这是来自UserProfileManager的存在方法)而且
SiteProfileNotAvailable
错误 . (即使在我开始编写电子邮件身份验证后端之前,我也会收到这些错误 . )我错过了什么吗?达到我想要的最佳途径是什么?
1 回答
问题可能是UserProfile的抽象定义 . 当你离开'abstract = True'时,事情应该有效 . 但请注意这会如何改变您的表格方案 .