小编ivh*_*ivh的帖子

Django嵌套QuerySet

我有一个像这样的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通过其中一个upstatelostateForeignKeys 反映原始选择的条件.

我已经建立了我对国家的QuerySet到现在通过遍历t,添加values('upstate_id')values('lostate_id')给一个Python set()扔了重复,然后用这个列表查询国家.但后来我无法在Atoms中实现状态的嵌套结构.

如果可能的话,任何有关如何执行此操作的建议都是受欢迎QuerySet的,因为我将它们传递给模板而不是生成器(yield语句),这是一种流式传输大量数据的好方法.

python django django-models django-queryset

5
推荐指数
1
解决办法
4110
查看次数

标签 统计

django ×1

django-models ×1

django-queryset ×1

python ×1