Mój model jestJak utworzyć zestaw zapytań, który filtruje wiele pól w oparciu o jeden warunek w Django?
class TestModel(models.Model)
field1 = models.IntegerField()
field2 = models.IntegerField()
field3 = models.IntegerField()
field4 = models.IntegerField()
field5 = models.IntegerField()
Potrzebuję prostego queryset że zastosowanie jednego warunku na wszystkich pięciu dziedzinach modelu bez pisania każdą kombinację pól i ich filtrowanie.
Na przykład chcę, aby zastosować warunek sprawdzania Żaden z dwóch lub więcej pól
TestModel.objects.filter(two_or_more_fields=None)
Nie chcę napisać każdą możliwą kombinację 5 pól znaleźć queryset z dwiema lub więcej pól jako Brak. Innymi słowy, czy istnieje lepszy sposób osiągnięcia tego celu niż:
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
)
myślę, że powinno być lepiej i prosty sposób do osiągnięcia tego celu.
Jest to dobra propozycja, ale nie mogę zmienić model w moim przypadku. – javed