djangodocs.org

1413 sections across all versions Narrow to Django 6.0 (current) →

order_by()

Topic guide Aggregation

For example, to order a QuerySet of books by the number of authors that have contributed to the book, you could use the following query:

dev

Custom managers

Topic guide Managers

There are two reasons you might want to customize a Manager: to add extra Manager methods, and/or to modify the initial QuerySet the Manager returns.

dev

Profile first

Topic guide Database access optimization

Use QuerySet.explain() to understand how specific QuerySets are executed by your database. You may also want to use an external project like django-debug-toolbar, or a tool that monitors your database directly.

dev

Create in bulk

Topic guide Database access optimization

When creating objects, where possible, use the bulk_create() method to reduce the number of SQL queries. For example: …is preferable to: Note that bulk_create() has several caveats, so ensure it’s appropriate for your use case.

dev

Update in bulk

Topic guide Database access optimization

Given a list or queryset of objects: The following example: …is preferable to: Note that bulk_update() has several caveats, so ensure it’s appropriate for your use case.

dev

Retrieving all objects

Topic guide Making queries

The simplest way to retrieve objects from a table is to get all of them. To do this, use the all() method on a Manager: The all() method returns a QuerySet of all the objects in the database.

dev

Field lookups

Topic guide Making queries

Field lookups are how you specify the meat of an SQL WHERE clause. They’re specified as keyword arguments to the QuerySet methods filter(), exclude() and get(). Basic lookups keyword arguments take the form field__lookuptype=value. (That’s a double-underscore).

dev

No deferred queries

Topic guide Making queries

Relations are deferred by default. If the blog relation is not prefetched, accessing entry.blog during asynchronous evaluation of a queryset attempts a blocking database query, raising SynchronousOnlyOperation.

dev

Raw SQL fragments

Topic guide Performing raw SQL queries

In some cases, you may need to embed raw SQL fragments directly into ORM queries — for example, in annotate() or filter() calls. Use Func() expressions for calling database functions across backends, or RawSQL for arbitrary parameterized SQL fragments.

dev

Deferring model fields

Topic guide Performing raw SQL queries

Fields may also be left out: The Person objects returned by this query will be deferred model instances (see defer()). This means that the fields that are omitted from the query will be loaded on demand.

dev

Field types

Topic guide Creating forms from models

As you might expect, the ForeignKey and ManyToManyField model field types are special cases: ForeignKey is represented by django.forms.ModelChoiceField, which is a ChoiceField whose choices are a model QuerySet.

dev

Arguments

Topic guide Django shortcut functions

klass A Model class, a Manager, or a QuerySet instance from which to get the object. *args Q() objects. **kwargs Lookup parameters, which should be in the format accepted by get() and filter().

dev