比方說,我有三個型號在一個一對多的關係必然是這樣的:如何獲取一對多關係層次結構的第二級中的所有相關對象?
class Highest(Model):
pass
class Medium(Model):
higher = ForeignKey(Highest, on_delete=CASCADE)
class Lowest(Model):
higher = ForeignKey(Medium, on_delete_CASCADE)
現在,如果我有Highest
一個實例調用highest
我可以很容易地獲得所有相關Medium
對象是這樣的:highest.medium_set.all()
如果我有一個名爲medium
的Medium
的情況下我可以很容易地獲得所有相關Lowest
對象是這樣的:medium.lowest_set.all()
但我怎麼OBTA在與任何Medium
對象有關的所有Lowest
對象與特定對象Highest
有關嗎?
這不起作用:highest.medium_set.lowest_set.all()
我總是可以做到這一點:Lowest.objects.filter(higher__higher=highest).distinct().all()
但是,這是唯一的辦法?或者我可以更直接地做到嗎?也就是說,通過從Highest
對象中獲取所有相關的Lowest
對象,而不是通過所有的Lowest
對象進行篩選?
這是* *是最直接的方式。簡而言之,您應該從您想要獲得的模型開始,即最低。 –