Django models Django多级用户处理

Django models Django多级用户处理,django-models,django-admin,django-users,Django Models,Django Admin,Django Users,使用django和postgresql设计多级用户登录系统的最佳方法是什么。用户详细信息包括负责人(管理员)、学生、教师、员工等。这些不同类型的用户详细信息有不同的字段,我们不能更改这些字段。我们如何通过组合所有这些类型的用户来设计用户模型 class Heads(models.Model): gid = models.IntegerField(primary_key=True) name = models.CharField(max_length=50)

使用django和postgresql设计多级用户登录系统的最佳方法是什么。用户详细信息包括负责人(管理员)、学生、教师、员工等。这些不同类型的用户详细信息有不同的字段,我们不能更改这些字段。我们如何通过组合所有这些类型的用户来设计用户模型

class Heads(models.Model):
    gid     = models.IntegerField(primary_key=True) 
    name    = models.CharField(max_length=50)
    emp_code= models.CharField(max_length=50)
    school  = models.ForeignKey(SchoolDetails)
    prdFrom = models.DateField()
    contact_no=models.CharField(max_length=50) 
    email_id=models.CharField(max_length=50) 
    designation=models.CharField(max_length=50)
    address =models.TextField() 
    def __unicode__(self):
        return unicode(self.name)
    class Meta:
        db_table = u'heads'
        verbose_name = "heads"  

class Student(models.Model):
    gid     = models.IntegerField(primary_key=True) 
    name    = models.CharField(max_length=50)
    stud_code= models.CharField(max_length=50)
    school  = models.ForeignKey(SchoolDetails)
    std = models.IntegerField()
    division=models.CharField()
    parents_email_id=models.CharField(max_length=50) 
    parents_contact_no=models.CharField(max_length=50) 
    addess  =models.TextField() 
    def __unicode__(self):
        return unicode(self.name)
    class Meta:
        db_table = u'students'
        verbose_name = "students"       

class Teacher(models.Model):
    gid     = models.IntegerField(primary_key=True) 
    name    = models.CharField(max_length=50)
    emp_code= models.CharField(max_length=50)
    school  = models.ForeignKey(SchoolDetails) 
    contact_no=models.CharField(max_length=50) 
    email_id=models.CharField(max_length=50) 
    address =models.TextField() 
    is_lead= models.CharField()
    def __unicode__(self):
        return unicode(self.name)
    class Meta:
        db_table = u'teacher'
        verbose_name = "teacher"        

class Staff(models.Model):
    gid     = models.IntegerField(primary_key=True) 
    name    = models.CharField(max_length=50)
    emp_code= models.CharField(max_length=50)
    school  = models.ForeignKey(SchoolDetails) 
    contact_no=models.CharField(max_length=50) 
    email_id=models.CharField(max_length=50) 
    address =models.TextField() 
    designation= models.CharField()
    def __unicode__(self):
        return unicode(self.name)
    class Meta:
        db_table = u'staff'
        verbose_name = "staff"              
请给出答案

谢谢。

您可以使用所有类似个人资料的课程,因此,这将为您提供:

class Heads(models.Model): #<-- by convention you should use singular 'Head'
    user = models.OneToOneField(User)
    <other Head-specific fields not included in User>

班长(models.Model):#请给出代码。谢谢。亲爱的乐高冲锋队,我编辑了我的问题。。。