我正在根据父查询对象筛选预取,这可能吗?希望下面的例子能解释。在
SiteData中的live link类型和Circuits中的circuit type使用相同的子模型。在
例如,如果live link type是'Fibre',我只想预取circuit_type为'Fibre'的电路。每个站点可以有许多电路,但我现在只想要一个活的
以下是查询:
conn_stats = SiteData.objects.all()
.exclude(site_type__site_type='Factory') \
.exclude(site_type__site_type='Data Centre') \
.Prefetch(
'circuits_set',
queryset=Circuits.objects.filter(SiteData.objects.live_link_type.circuit_type)
)
)
以下是模型:
^{pr2}$
据我所知,你不能用一个查询集完成你所要求的。在
如果
CircuitTypes
的数目很小,可以考虑为每种类型的电路构造一个查询集:如果有许多电路类型并且这是禁止的,那么您可以向
^{pr2}$Circuits
添加一个布尔active
字段,并在更改每个SiteData.live_link_type
时更新其值。这样您就只能直接查询活动的Circuits
:相关问题 更多 >
编程相关推荐