sql - Django annotate sum with a condition on a related table -
वर्ग इन्वेंटरी (models.Model): ... उत्पाद = मॉडल.ForeignKey ('उत्पाद') मात्रा = Models.IntegerField (डिफ़ॉल्ट = 0) वर्ग आदेश (models.Model): ... मात्रा = मॉडल.इटेगरफिल्ड () सूची = मॉडल.आगेरिनकी ('इन्वेंटरी') सक्रिय = मॉडल। बूलियनफिल्ड (डिफ़ॉल्ट = सच) # पर विचार नहीं आदेश जो कि सक्रिय क्वेरीज़ नहीं हैं = इन्वेंटरी.ओब्जेक्ट्स.अनोटेट (उपयोग किया गया = योग ('ऑर्डर दिग्गज')) .फ़िल्टर (उत्पाद = उत्पाद) मुझे उस वस्तु के क्वेरीज़ की ज़रूरत है जो एनोटेट की गई है 'प्रयुक्त' मान 'प्रयुक्त' मान सभी संबंधित ऑर्डर की मात्रा से निर्धारित होता है, लेकिन सक्रिय हैं।
संपादित करें : अधिक सटीक होने के लिए, मुझे केवल सक्रिय ऑर्डर की मात्रा ही चाहिए।
queryset = inventory.objects.filter (उत्पाद = उत्पाद, order__active = true)। कुल (सम ( 'Order_qantity')) sum = queryset ['order__quantity__sum']
Comments
Post a Comment