नौसिखिया सवाल ...
मॉडल:
आइटम Model.Models): ... attributes = models.ManyToManyField ('एट्रिब्यूट्स', रिक्त = ट्रू) ... एट्रिब्यूट्स (मॉडेल। मॉडेल्स): शीर्षक = मॉडेल्स। केअरफिल्ड (अधिकतम_लांबी = 100, अनन्य = ट्रू) वैल्यू = मॉडल TextField () ... मेरे पास ऑब्जेक्ट ऑब्जेक्ट्स [attObj1, attobj2, attObj3, attObjN] की सूची है कि मैं आइटम तालिका निम्नलिखित क्वेरी काम करती है। आइटम = आइटम.बाइजेक्ट .फिल्टर (विशेषता = एटओबेज 1 और एटीओबीजे 2 और एटीओबीजे 3) समस्या मुझे गतिशील रूप से क्वेरी (यानी: attObj1 और attObj2 और attObj3 ... और attObjN ) बनाने की आवश्यकता है क्योंकि सूची में मौजूद विशेषताओं की संख्या अज्ञात है। मैंने निम्नलिखित जटिल क्वेरीज़ बिना भाग्य के () का उपयोग करने की कोशिश की यह एक खाली सूची लौटा। AttList = [attObj1, attObj2, attObj3] क्वेरी = क्यू (attributes = attList.pop (0)) att के लिए att में: क्वेरी = क्वेरी & amp; क्यू (एट्रीब्यूट = एट) आइटम = मद.ऑब्जेक्टफिल्टर (क्वेरी) क्या यह संभव है?
आप कोशिश कर सकते हैं:
आइटम = आइटम.ऑब्जेक्ट .फ़िल्टर (attributes__in = attList) संपादित करें: आप भी चेनिंग / बहु फिल्टर की कोशिश कर सकते हैं
attList = [attObj1, attObj2, attObj3] fitems = आर्ट्स में att के लिए items.objects.filter (): fitems = fitems.filter (attributes = att ) fitems ऑब्जेक्ट युक्त एक सेट तक कम हो जाते हैं जो attList में विशेषताएँ हैं।
Comments
Post a Comment