使用auth.User的Django多个配置文件。标准学生老师的例子

时间:2012-09-07 10:25:10

标签: django relational-database

在django中创建2个配置文件是否正确?我希望学生能够接触他的老师,并让老师也能接触到他的学生。我的意思是,如果我以学生身份登录,我想浏览一下教我的老师,如果我以老师的身份登录,我想浏览我教的学生。这样我就无法为老师和学生创建一个档案。

class Teacher(models.Model):
    ...
    user = models.OneToOneField(User)

class Student(models.Model):
    ...
    user = models.OneToOneField(User)
    teacher = models.ManyToManyField(Teacher)

如果是这样,我的AUTH_PROFILE_MODULE看起来应该这样吗?

AUTH_PROFILE_MODULE = 'school.Teacher, school.Student'

会感激任何答案。 谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用单个个人资料;

class People(models.Model):
    user = models.ForeignKey(User)
    teachers = models.ManyToManyField("self")

然后您可以使用

访问必要的信息
teacher = People.objects.get(pk=<teacher_pk>)
students = People.objects.filter(teachers=teacher)

student = People.objects.get(pk=<student_pk>)
teachers = student.teachers.all()