我有兩個表。第一個是基本的用戶表。第二個是名爲Section的表格。Django ManyToMany反向查詢與特定鍵
def User(models.Model):
...
is_teacher = models.BooleanField(default=False)
...
def Section(models.Model):
...
teachers = models.ManyToManyField(User, related_name="teachers")
students = models.ManyToManyField(User, related_name="students")
is_active = models.BooleanField(default=True)
...
我想獲得所有的學生用戶(在用戶表中標識與is_teacher=False
),我知道可以用User.objects.filter(is_teacher=False)
輕鬆完成。
我想也獲取每個用戶的活動部分。
但是,此刻,我似乎甚至無法獲得用戶的部分部分的集合。
我已經試過:
students = User.objects.filter(is_teacher=False)
for s in students:
print s.section_set.all()
但我發現了一個錯誤,User
對象沒有section_set
。我在猜測,因爲該部分與用戶表(教師和學生)有兩個多對多的關係,所以我可能必須更清楚地說明關係(跟隨學生而不是老師)。但我不知道如何做到這一點。
感謝。現在開始瞭解related_names字段的真正目的... – akajb