मेरे पास 3 टेबल प्लवनशीलता है जिसमें कई हल्के अवशेष हैं जिनमें कई रचनाएं हैं।

मैं प्रत्येक प्लवनशीलता के लिए एक दृश्य बनाना चाहता हूं जो प्रकाश अवशेषों की सूची और संबंधित रचनाओं की सूची तक पहुंच सके। प्रत्येक प्लवनशीलता के लिए केवल 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,
    })
0
Spatial Digger 2 मार्च 2019, 15:22

1 उत्तर

सबसे बढ़िया उत्तर

आप 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 का उपयोग करके उनका संयोजन कर रहा हूं।

0
SureshKumar 2 मार्च 2019, 13:16