1
我想在Django中为2个不同的用户组实现一个认证系统。一名学生(使用他的用户名&密码),一名开发者(使用他的电子邮件&密码)。目前我有一个(共同的)UserProfile模型,将由Student,Developer共享。这里是我的模型代码:在Django中遵循多重身份验证后端的最佳实践?
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'
我得到验证,只需用户配置模式工作。但是,一旦我介绍了学生,开发人员整个事情搞砸了。我越来越
用户配置有没有属性 'DoesNotExist'
(这是从UserProfileManager存在方法),也
SiteProfileNotAvailable
错误。 (即使在我开始编写电子邮件身份验证后端之前,我也会收到这些错误)。我错过了什么?什么是最好的路径来实现我想要的。
如果我们离开Abstract = True,那么它将在Db中创建UserProfile记录。对 ?我想避免这种情况。我希望在各个表格中创建学生或开发人员配置文件。我认为我创建两个模型(学生,开发人员)的原因是,如果我们只有一个UserProfile模型并且区分学生/开发人员是通过一个简单的标志完成的,那么任何人都只能使用一个auth后端。对 ?由于我想要多个auth后端,我使用了多种类型的用户配置文件(Student,Developer) – 2010-11-26 08:05:33