我有3桌浮选,有许多轻渣油,有很多成分。
我想为每个浮选创建一个视图,该视图可以访问轻质残渣列表和相关成分列表。每次浮选中只有2-3个轻质残渣,而且组成也相同,因此易于管理。
我可以获得浮选记录及其参考的轻渣油,但是我在传递lightresidue_id来获取组成方面遇到困难。 [n.b.我知道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,
})
答案 0 :(得分:0)
您可以通过使用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
可能包含一个或多个对象,因此在这里我将与每个compositions
分别关联的所有lightresidue
并使用itertools
进行组合。