Reference
Query Expressions
Built-in ExpressionsSubquery() expressions
classExists(queryset)[source] Exists is a Subquery subclass that uses an SQL EXISTS statement. In many cases it will perform better than a subquery since the database is able to stop evaluation of the subquery when a first matching row is found.
4.2
5.0
5.1
5.2
6.0
Topic guide
Database access optimization
Understand QuerySets
QuerySet.explain() gives you detailed information about how the database executes a query, including indexes and joins that are used.
4.2
5.0
5.1
5.2
6.0
Reference
The contenttypes framework
classGenericPrefetch(lookup,querysets,to_attr=None)[source] This lookup is similar to Prefetch() and it should only be used on GenericForeignKey. The querysets argument accepts a list of querysets, each for a different ContentType. This is useful for GenericForeignKey with non-homogeneous set of results.
dev
Reference
PostgreSQL specific model fields
The contains lookup is overridden on ArrayField. The returned objects will be those where the values passed are a subset of the data. It uses the SQL operator @>. For example:
dev
Reference
The contenttypes framework
Generic relations
classGenericPrefetch(lookup,querysets,to_attr=None)[source] This lookup is similar to Prefetch() and it should only be used on GenericForeignKey. The querysets argument accepts a list of querysets, each for a different ContentType. This is useful for GenericForeignKey with non-homogeneous set of results.
5.0
5.1
5.2
6.0
Reference
PostgreSQL specific model fields
Range FieldsQuerying Range FieldsContainment functions
The contains lookup is overridden on ArrayField. The returned objects will be those where the values passed are a subset of the data. It uses the SQL operator @>. For example:
4.2
5.0
5.1
5.2
6.0
Reference
Databases
When using QuerySet.iterator(), Django opens a server-side cursor. By default, PostgreSQL assumes that only the first 10% of the results of cursor queries will be fetched.
dev
Topic guide
Making queries
The QuerySet returned by all() describes all objects in the database table. Usually, though, you’ll need to select only a subset of the complete set of objects. To create such a subset, you refine the initial QuerySet, adding filter conditions.
dev
Topic guide
Making queries
The result of refining a QuerySet is itself a QuerySet, so it’s possible to chain refinements together. For example: This takes the initial QuerySet of all entries in the database, adds a filter, then an exclusion, then another filter.
dev
Reference
Databases
PostgreSQL notes
When using QuerySet.iterator(), Django opens a server-side cursor. By default, PostgreSQL assumes that only the first 10% of the results of cursor queries will be fetched.
4.2
5.0
5.1
5.2
6.0
Topic guide
Making queries
Retrieving objects
The QuerySet returned by all() describes all objects in the database table. Usually, though, you’ll need to select only a subset of the complete set of objects. To create such a subset, you refine the initial QuerySet, adding filter conditions.
4.2
5.0
5.1
5.2
6.0
Topic guide
Making queries
Retrieving objectsRetrieving specific objects with filters
The result of refining a QuerySet is itself a QuerySet, so it’s possible to chain refinements together. For example: This takes the initial QuerySet of all entries in the database, adds a filter, then an exclusion, then another filter.
4.2
5.0
5.1
5.2
6.0
Reference
PostgreSQL specific database constraints
ExclusionConstraint
ExclusionConstraint.condition A Q object that specifies the condition to restrict a constraint to a subset of rows. For example, condition=Q(cancelled=False). These conditions have the same database restrictions as django.db.models.Index.condition.
Reference
Constraints reference
CheckConstraint.condition A Q object or boolean Expression that specifies the conditional check you want the constraint to enforce. For example: ensures the age field is never less than 18.
4.2
5.0
dev
Topic guide
Making queries
The contains lookup is overridden on JSONField. The returned objects are those where the given dict of key-value pairs are all contained in the top-level of the field. For example: NOTE: contains is not supported on Oracle and SQLite.
dev
Reference
Constraints reference
UniqueConstraint
CheckConstraint.condition A Q object or boolean Expression that specifies the conditional check you want the constraint to enforce. For example: ensures the age field is never less than 18.
5.1
5.2
6.0
Topic guide
Making queries
Querying JSONFieldContainment and key lookups
The contains lookup is overridden on JSONField. The returned objects are those where the given dict of key-value pairs are all contained in the top-level of the field. For example: NOTE: contains is not supported on Oracle and SQLite.
4.2
5.0
5.1
5.2
6.0
Reference
Constraints reference
CheckConstraint
CheckConstraint.check A Q object or boolean Expression that specifies the check you want the constraint to enforce. For example, CheckConstraint(check=Q(age__gte=18), name='age_gte_18') ensures the age field is never less than 18.
4.2
5.0
Tutorial
Writing your first Django app, part 5
We ought to add a similar get_queryset method to ResultsView and create a new test class for that view. It’ll be very similar to what we have just created; in fact there will be a lot of repetition.
dev
Reference
Model class reference
exceptionModel.MultipleObjectsReturned : This exception is raised by QuerySet.get() when multiple objects are found for the given lookups.
dev