Django's QuerySets are lazy – the act of creating a QuerySet doesn’t involve any database activity. You can stack filters together all day long, and Django won’t actually run the query until the QuerySet is evaluated
https://docs.djangoproject.com/en/dev/topics/db/queries/#querysets-are-lazy