Django Django 1.9中的多个用户类型
问题描述:
我想创建一个Web应用程序,其中我将拥有两种不同类型的用户Employee和Employers。他们将主要是非常见的领域。如何实现两者的单独注册。 目前我从用户模型继承。Django Django 1.9中的多个用户类型
models.py
class Category(models.Model):
cname=models.CharField(max_length=250)
def __str__(self):
return self.cname
class Workplace(User):
address=models.TextField(max_length=250)
logo=models.ImageField(upload_to=upload_location,null=True,blank=True)
wcategory=models.ForeignKey(Category,on_delete=models.CASCADE)
class Employee(User):
employee_id=models.CharField(max_length=250)
eworkplace=models.ForeignKey(Workplace,on_delete=models.CASCADE)
答
在Django,你可以让他们都能够进行身份验证,或注册,通过设置你的工作场所和员工车型OneToOneField
到User
。如果您在设置中将此用户设置为AUTH_USER_MODEL
= <yourapp.User>
,您将能够注册已设置此字段的模型。
但是我们不能同时在AUTH_USER_MODEL中同时有两个模型 –
正确。将此值设置为'AUTH_USER_MODEL =',然后在需要注册的其他模型中,添加: 'user = models.OneToOneField(settings.AUTH_USER_MODEL,related_name ='user_account')' –