как указать пустой набор запросов, чтобы не пустой набор запросов: от [] до [] - PullRequest
0 голосов
/ 03 декабря 2011

У меня проблема с определением объекта, если он пустой или нет ... вот мой код:

это значение не имеет данных

>>> x = Booking.objects.filter(date_select='2011-12-3')
>>> print x
[]
>>> if x == None:
...  print 'none'
... 
>>> 

это имеет данные:

>>> x = Booking.objects.filter(date_select='2011-12-2')
>>> print x
[<Booking: arab>, <Booking: arab>, <Booking: vvv>]
>>> if x == None:
...  print 'none'
... 
>>>

Я узнал, что [] не равно None из моего предыдущего вопроса ... Вот алгоритм, который я хочу применить в своем коде:

if x has an empty queryset
 print empy
else
 print data

Может кто-нибудь может помочь мне об этом? спасибо ...

Ответы [ 3 ]

7 голосов
/ 03 декабря 2011

Использовать exists()

Возвращает True, если QuerySet содержит какие-либо результаты, и False, если нет.Он пытается выполнить запрос самым простым и быстрым способом, но он выполняет почти тот же запрос.Это означает, что вызов QuerySet.exists () выполняется быстрее, чем bool (some_query_set), но не в большой степени.

if my_queryset.exists():
    print "QuerySet has Data"
else:
    print "QuerySet is empty"
2 голосов
/ 03 декабря 2011

Это должно работать

if not x:
    print "Empty"
else:
    print data`
0 голосов
/ 03 декабря 2011

1001 * попробовать *

x = Booking.objects.filter(date_select='2011-12-2')
if x.count() == 0:
    print "empty"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...