से क्वेरी को छानने मैं इन मॉडल:Django, मॉडल विधि
def Foo(Models.model):
size = models.IntegerField()
# other fields
def is_active(self):
if check_condition:
return True
else:
return False
def Bar(Models.model):
foo = models.ForeignKey("Foo")
# other fields
अब मैं बार्स कर रहे हैं कि क्वेरी करना चाहते हैं सक्रिय फू के रूप में इस तरह:
Bar.objects.filter(foo.is_active())
मैं ऐसे
के रूप में त्रुटि हो रही हैSyntaxError at/
('non-keyword arg after keyword arg'
मैं यह कैसे प्राप्त कर सकते हैं?
या उस डेटा को स्टोर करें जिसे आप किसी डेटाबेस फ़ील्ड में फ़िल्टर करना चाहते हैं और जब आपको आवश्यकता है (आमतौर पर सहेजने पर) इसे अपडेट करें। फिर आप इसे किसी भी अन्य फ़ील्ड की तरह फ़िल्टर/सॉर्ट कर सकते हैं। –
यदि मैं विधि क्वेरी के भीतर मानदंडों का दोबारा उपयोग करता हूं, तो मैं DRY कैसे रहूं? मेरे तरीके हमारे व्यापार तर्क के लिए बेहद महत्वपूर्ण हैं और यदि तर्क परिवर्तन कहा जाता है, तो मैं तोड़ने के लिए अपने तरीकों का जोखिम नहीं उठा सकता। डीआरवाई रहना बेहद महत्वपूर्ण है। – Flowpoke
पाइथन में ऐसा करके आप एक संभावित प्रदर्शन कमजोरी पेश करते हैं जब आप क्वेरी फ़िल्टर का उपयोग करते हैं तो यह डीबी स्तर पर किया जाता है, लेकिन जब आप पाइथन स्तर पर करते हैं तो आमतौर पर धीमा होता है। –