我有這樣(數據字段中省略)一個Django數據模型:Django的嵌套查詢集
class Atom(Model):
pass
class State(Model):
atom = ForeignKey(Atom)
class Transition(Model):
atom = ForeignKey(Atom)
upstate = ForeignKey(State,related_name='uptrans')
lostate = ForeignKey(State,related_name='lotrans')
當我查詢時,字段被限制可以是在任一模式,所以它是最簡單的上Transition.objects.filter(...)
查詢因爲其他模型中的所有字段都可以通過外鍵到達。我們調用生成的QuerySet t
。
現在我想要的另外是對應於t
的Atom模型的QuerySet a
,它可以像a = t.values('atom').distinct()
一樣完成。到現在爲止還挺好。
不過,我也希望每個在a
條目有一個屬性/字段保存查詢集爲這個原子,仍然反映原選區t
標準的國家,通過upstate
中的任一或lostate
ForeignKeys。
我創建了我對國家的QuerySet到現在通過遍歷t
,加入values('upstate_id')
和values('lostate_id')
給一個Python set()
扔了重複,然後用這個列表查詢國家。但是,我無法在原子範圍內實現國家的嵌套結構。
關於如何做到這一點的任何建議,歡迎,如有可能,未計算QuerySet
S,因爲我通過他們不要爲模板,但一臺發電機(yield
語句),這是流大量數據的一個很好的方式。