मेरे मॉडलएक क्वेरीसेट कैसे बनाएं जो Django में एक शर्त पर आधारित एकाधिक फ़ील्ड फ़िल्टर करता है?
class TestModel(models.Model)
field1 = models.IntegerField()
field2 = models.IntegerField()
field3 = models.IntegerField()
field4 = models.IntegerField()
field5 = models.IntegerField()
मैं क्षेत्रों के प्रत्येक संयोजन के लिखने और उन्हें छानने के बिना सभी पांच मॉडल के क्षेत्रों पर एक भी शर्त लागू होने वाला एक सरल क्वेरीसमूह की जरूरत है।
उदाहरण के लिए मैं दो या अधिक क्षेत्रों
TestModel.objects.filter(two_or_more_fields=None)
मैं किसी भी दो या अधिक क्षेत्रों के साथ क्वेरीसमूह को खोजने के लिए 5 क्षेत्रों के हर संभव संयोजन लिखना नहीं चाहते करने के लिए कोई नहीं के लिए जाँच की एक शर्त लागू करना चाहते हैं कोई नहीं के रूप में।
from django.db.models import Q
TestModel.objects.filter(
#condition for exactly 2 None
Q(field1=None & field2=None) |
Q(field2=None & field3=None) |
Q(field3=None & field4=None) |
Q(field4=None & field5=None) |
Q(field5=None & field1=None) |
#condition for more than 2 None
Q(field1=None & field2=None & field3 = None) |
'''''
.
.
#so on to cover all possible cases of any two or more fields as None
)
मुझे लगता एक बेहतर और आसान तरीका यह पूरा करने के होना चाहिए: दूसरे शब्दों में, वहाँ एक बेहतर तरीका है पूरा करने के लिए इस से है।
यह एक अच्छा सुझाव है, लेकिन मैं मेरे मामले में मॉडल नहीं बदल सकते। – javed