Jak wykonać lub kondycjonować w zapytaniu django?
Chcę napisać zapytanie Django równoważne z tym zapytaniem SQL:
SELECT * from user where income >= 5000 or income is NULL.
Jak skonstruować Filtr zapytań Django?
User.objects.filter(income__gte=5000, income=0)
To nie działa, ponieważ to AND
są filtry. Chcę OR
filtrów, aby uzyskać połączenie poszczególnych zestawów zapytań.
214
2 answers
from django.db.models import Q
User.objects.filter(Q(income__gte=5000) | Q(income__isnull=True))
419
Author: Lakshman Prasad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-26 02:13:02
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-26 02:13:02
Ponieważ QuerySets implementują Operator Pythona __or__
(|
), lub union, po prostu działa. Jak można się spodziewać, operator binarny |
zwraca QuerySet
, więc order_by()
, .distinct()
, i inne filtry queryset mogą być przyczepione do końca.
combined_queryset = User.objects.filter(income__gte=5000) | User.objects.filter(income__isnull=True)
ordered_queryset = combined_queryset.order_by('-income')
46
Author: hobs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-17 13:00:11
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-17 13:00:11