如何在分离的表中拥有多种类型的用户?

时间:2017-03-20 15:48:05

标签: python django django-models django-admin

我正在构建一个项目,其中我将有3种类型的用户。

超级管理员 老师 学生

教师和学生将在一个名为Class的表中,每个班级将有一名教师和几名学生。

据我所知(非常有限),Django只为所有类型的用户提供一个用户表,但我不知道如何继续,因为我需要分离的表来保持数据的有序性而不会减少,除了与其他表格有关。

有没有什么解决方案可以解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以实现与此类似的 related_name 属性:

from django.contrib.auth.models import User

class ClassRoom(models.Model):
    # One classroom one teacher
    teacher = models.ForeignKey(User, related_name="teacher")
    # One classroom many students
    student = models.ManytoManyField(User, blank=True, null=True,
                                     related_name="students")
    .....

有关详细信息,请参阅以下链接:

Django teacher students easy solution. Use separate tables, or permissions and groups? How? Other ideas?

Django model with Foreign Key and ManyToMany relations to same model

Two sets of users (teacher and student) in Django authentication