1. 程式人生 > >Django實現一對多表模型的跨表查詢

Django實現一對多表模型的跨表查詢

當有兩個表,例如一個學生表,一個班級表,是多對一的關係。

方法1:

c = models.Class.object.get(pk=1)
#查詢到ID為1的班級
stus = models.Student.object.filter(cls=c)
# 查詢出來所有班級為c的學生
#stus是多個物件
#可以迴圈出結果
for stu in stus :
    print stu.id,stu.name

方法2

stus = models.Student.object.filter(cls__name='1703')
#雙下劃線為跨表查詢,查詢學生對應的所有cls為1703的學生

方法3

c=models.Class.object.get(pk=1)
#獲取ID為1的班級
stus=c.Student_set.all
#獲取所有該班級下的所有學生

html頁面獲取方法

 <td>{{ line.student_set.count }}</td>