For Django models, is there a shortcut for seeing if a record exists?


Question

Say I have a table People, is there a way to just quickly check if a People object exists with a name of 'Fred'? I know I can query

People.objects.filter(Name='Fred')

and then check the length of the returned result, but is there a way to do it in a more elegant way?

1
35
1/7/2015 4:22:46 PM

Accepted Answer

Update:

As mentioned in more recent answers, since Django 1.2 you can use the exists() method instead (link).


Original Answer:

Dont' use len() on the result, you should use People.objects.filter(Name='Fred').count(). According to the django documentation,

count() performs a SELECT COUNT(*) behind the scenes, so you should always use count() rather than loading all of the record into Python objects and calling len() on the result (unless you need to load the objects into memory anyway, in which case len() will be faster).

source: Django docs

38
8/20/2015 11:52:12 AM

An exists() method in the QuerySet API is available since Django 1.2.


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon