2012-09-07 25 views
1

在django中創建2個配置文件是否正確?我希望學生能夠接觸到他的老師,還有老師給他的學生。我的意思是,如果我以學生身份登錄,我想瀏覽教授我的老師,如果我以老師的身份登錄,我想瀏覽我教授的學生。這樣我就不能爲教師和學生創建一個配置文件。使用auth.User的Django多個配置文件。標準學生教師示例

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

您可以使用單個配置文件;

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() 
+0

非常感謝。我認爲這是做到這一點的正確方法?或者在某些情況下兩個都是正確的? – danb333

+0

我同意這取決於情況 – Reinbach

相關問題