how can i specify or determine the values in my objects in python if it has this value []
or it has [<Booking: arab>]
,
let us say that in my queryset, i filter a value that not exist in my objects.
here is what i have done : this date_select has no data
>>> x = Booking.objects.filter(date_select='2011-12-3')
>>> print x
[]
>>> if x == None:
... print 'none'
...
>>>
is it []
not equal to None?
when i try a date_select that has data
>>> x = Booking.objects.filter(date_select='2011-12-2')
>>> print x
[<Booking: arab>, <Booking: arab>, <Booking: vvv>]
>>> if x == None:
... print 'none'
...
>>>
i just want to determine if x has a data or not... can anyone can give me an idea about my case?
thanks in advance
No,
[]
is not equal toNone
.[]
is an empty list - a list with no content but that exists nonetheless and can come to have some elements.None
is a value representing "nothing" - when you find theNone
value, it meas something like "this variable has no relevant content". Since empty lists can be relevant content - for example, the empty list can be the initial state of a list which will accumulate elements over time - then there is no sense in assuming that[] == None
.armonge gave you the response: just use the list as the condition, because empty lists are "falsy" - that is, empty lists has the same effect of
False
when used as a condition for anif
,while
etc. If you want to execute something when the list does not have some content, just negate it:BTW, a question: are you used to program in Lisp? This is the only language where an empty list is equivalent to the "None type" (in this case,
nil
).You just need
If you want to know if your queryset returned any results, call the
exists
method.If you want to know how many items, you can use
count