我有一个像这样的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')
Run Code Online (Sandbox Code Playgroud)
当我查询时,要限制的字段可以在任一模型中,因此最容易查询,Transition.objects.filter(...)因为可以通过外键到达其他模型中的所有字段.我们调用生成的QuerySet t.
现在我想要的是aAtom模型的QuerySet ,它对应于t,可以这样做a = t.values('atom').distinct().到现在为止还挺好.
但是,我还希望每个条目a都有一个属性/字段,用于保存此Atom状态的QuerySet,仍然t通过其中一个upstate或lostateForeignKeys 反映原始选择的条件.
我已经建立了我对国家的QuerySet到现在通过遍历t,添加values('upstate_id')并values('lostate_id')给一个Python set()扔了重复,然后用这个列表查询国家.但后来我无法在Atoms中实现状态的嵌套结构.
如果可能的话,任何有关如何执行此操作的建议都是受欢迎QuerySet的,因为我将它们传递给模板而不是生成器(yield语句),这是一种流式传输大量数据的好方法.