मैं फ़िल्टर के एक सेट का उपयोग करके अपने डेटाबेस से पंक्तियों का एक गुच्छा पुनर्प्राप्त करना चाहता हूं।django सशर्त रूप से फ़िल्टरिंग ऑब्जेक्ट्स
मैं सोच रहा था कि अगर सशर्त फ़िल्टर django में लागू होता है। यही है, "फ़िल्टर अगर वैरिएबल कोई नहीं है, या अन्यथा फ़िल्टरिंग लागू नहीं है"।
कुछ इस तरह:
user = User.objects.get(pk=1)
category = Category.objects.get(pk=1)
todays_items = Item.objects.filter(user=user, date=now()).conditional_filter(category=category))
मुझे क्या करना चाहते हैं श्रेणी फिल्टर लागू केवल तभी श्रेणी कोई भी नहीं है।
यदि श्रेणी कोई नहीं है (इसका मतलब है कि यह अनुरोध ऑब्जेक्ट में नहीं दिया गया है) तो यह फ़िल्टर बिल्कुल लागू नहीं होगा। यह मुझे 'if-elif-else' स्थितियों का एक गुच्छा बचाएगा।
क्या ऐसा करने का कोई तरीका है?
धन्यवाद, जो मुझे समझ में नहीं आता है वह 'category__isnull = True' है। मेरी वस्तुओं में से कोई भी अपने वर्ग क्षेत्र में न्यूल नहीं है। जो इसे हमेशा झूठा बना देता है। – xpanta
@xpanta, उत्तर पर समझाया। – danihp
@danihp, क्षमा करें, मैं अभी भी __isnull = True को समझ नहीं पा रहा हूं। क्या यह इस स्थिति पर लागू होता है: "श्रेणी" वाला एक फॉर्म, उपयोगकर्ता फॉर्म भरता है और सबमिट करता है। अगर उपयोगकर्ता "श्रेणी" दर्ज नहीं करता है तो यह इस मान के लिए है। फिर यदि मैंने आपके पहले उदाहरण का पालन किया तो "श्रेणी" की बाधा के बिना डेटाबेस फ़िल्टर करें? अगर मेरी समझ सही है तो कृपया मुझे सही करें। अग्रिम में धन्यवाद। –