我有三张桌子,漂浮有很多轻量的东西,有很多的成分。
我想为每个浮选做一个视图,它可以访问轻质残留物的列表和相关成分的列表。每次浮选只有2-3个轻质残留物,成分也是如此,因此易于管理。
我可以得到浮选记录和它引用的轻质残留物,但是我很难通过lightresidue_id来获得成分。注:我知道lightresidue.id是Django的方式,但我选择了这种方式。
视图代码如下所示,我已经对lightresidue.lightresidue_id = 17进行了硬编码,它可以工作,但是我如何用它来替代lightresidue.lightresidue_id = composition.lightresidue_id呢?
def botanyoverview(request, flotation_id):
flotation = get_object_or_404(Flotation, pk=flotation_id)
lightresidue = LightResidue.objects.filter(flotation_id__flotation_id=flotation_id)
# composition = Composition.objects.filter(lightresidue.lightresidue_id)
composition = Composition.objects.filter(lightresidue_id=17)
return render(request, 'dashboard/botanyoverview.html',
{
'flotation':flotation,
'lightresidue':lightresidue,
'composition':composition,
})发布于 2019-03-02 21:16:11
您可以通过使用itertools链接所有lightresidue的组合来完成此操作。
from itertools import chain
def botanyoverview(request, flotation_id):
flotation = get_object_or_404(Flotation, pk=flotation_id)
lightresidue = LightResidue.objects.filter(flotation_id__flotation_id=flotation_id)
queryset = []
for i in lightresidue:
queryset += Composition.objects.filter(lightresidue_id = i.lightresidue_id)
composition = chain.from_iterable(queryset)
return render(request, 'dashboard/botanyoverview.html',
{
'flotation':flotation,
'lightresidue':lightresidue,
'composition':composition,
})lightresidue可能包含一个或多个对象,因此我在这里分别获取与每个lightresidue关联的所有compositions,并使用itertools将它们组合在一起。
https://stackoverflow.com/questions/54958476
复制相似问题