djangodocs.org

241 sections in Django 5.0 Search all versions →

select_related()

Reference QuerySet API reference QuerySet APIMethods that return new QuerySets

select_related(*fields) Returns a QuerySet that will “follow” foreign-key relationships, selecting additional related-object data when it executes its query.

prefetch_related()

Reference QuerySet API reference QuerySet APIMethods that return new QuerySets

This has a similar purpose to select_related, in that both are designed to stop the deluge of database queries that is caused by accessing related objects, but the strategy is quite different.

prefetch_related()

Reference QuerySet API reference QuerySet APIMethods that return new QuerySets

… with the optional queryset argument. This can be used to change the default ordering of the queryset: Or to call select_related() when applicable to reduce the number of queries even further: You can also assign the prefetched result to a …

prefetch_related()

Reference QuerySet API reference QuerySet APIMethods that return new QuerySets

… the restaurants, one for the ‘best pizzas’, and one for the toppings. The best_pizza relationship could also be fetched using select_related to reduce the query count to 2: Since the prefetch is executed after the main query (which includes the …

select_for_update()

Reference QuerySet API reference QuerySet APIMethods that return new QuerySets

For example, rows of related objects specified in select_related() are locked in addition to rows of the queryset’s model. If this isn’t desired, specify the related objects you want to lock in select_for_update(of=(...)) using the same fields syntax as select_related().

ModelAdmin options

Reference The Django admin site ModelAdmin objects

ModelAdmin.list_select_related : Set list_select_related to tell Django to use select_related() in retrieving the list of objects on the admin change list page. This can save you a bunch of database queries.

Prefetch() objects

Reference QuerySet API reference Query-related tools

… a base QuerySet for the given lookup. This is useful to further filter down the prefetch operation, or to call select_related() from the prefetched relation, hence reducing the number of queries even further: The to_attr argument sets the result of …

Forward

Topic guide Making queries Related objectsOne-to-many relationships

Subsequent accesses to the foreign key on the same object instance are cached. Example: Note that the select_related() QuerySet method recursively prepopulates the cache of all one-to-many relationships ahead of time. Example:

SQL efficiency

Design philosophies Database API

This is also why the select_related() QuerySet method exists. It’s an optional performance booster for the common case of selecting “every related object.”

ModelAdmin methods

Reference The Django admin site ModelAdmin objects

ModelAdmin.get_list_select_related(request) : The get_list_select_related method is given the HttpRequest and should return a boolean or list as ModelAdmin.list_select_related does.

S

Index

… django.middleware.security) - seekable() (HttpResponse method) - Select (class in django.forms) - select_for_update() (in module django.db.models.query.QuerySet) - select_on_save (Options attribute) - select_related() (in module django.db.models.query.QuerySet) - select_template() (Engine method) - (in module django.template.loader) - SelectDateWidget (class in django.forms) - SelectMultiple (class …

1.7

Internals Django Deprecation Timeline

The daily_cleanup.py script will be removed. The depth keyword argument will be removed from select_related(). The undocumented get_warnings_state()/restore_warnings_state() functions from django.test.utils and the save_warnings_state()/ restore_warnings_state() django.test.*TestCase methods are deprecated. Use the warnings.catch_warnings context manager available starting with Python 2.6 instead.

ModelAdmin

Reference System check framework contrib app checksadmin

admin.E117: The value of list_select_related must be a boolean, tuple or list. admin.E118: The value of list_per_page must be an integer. admin.E119: The value of list_max_show_all must be an integer.

ModelAdmin options

Reference The Django admin site ModelAdmin objects

By default, this is set to 100. ModelAdmin.list_select_related : Set list_select_related to tell Django to use select_related() in retrieving the list of objects on the admin change list page. This can save you a bunch of database queries.

defer()

Reference QuerySet API reference QuerySet APIMethods that return new QuerySets

… will still be deferred). You can defer loading of fields in related models (if the related models are loading via select_related()) by using the standard double-underscore notation to separate related fields: If you want to clear the set of deferred …

only()

Reference QuerySet API reference QuerySet APIMethods that return new QuerySets

Using only() and omitting a field requested using select_related() is an error as well. On the other hand, invoking only() without any arguments, will return every field (including annotations) fetched by the queryset.

G

Index

… (Sitemap method) - get_list_display() (ModelAdmin method) - get_list_display_links() (ModelAdmin method) - get_list_filter() (ModelAdmin method) - get_list_or_404() (in module django.shortcuts) - get_list_select_related() (ModelAdmin method) - get_log_entries() (AdminSite method) - get_login_url() (AccessMixin method) - get_lookup() (in module django.db.models) - (lookups.RegisterLookupMixin method) - …

L

Index

… list_display_links (ModelAdmin attribute) - list_editable (ModelAdmin attribute) - list_filter (ModelAdmin attribute) - list_max_show_all (ModelAdmin attribute) - list_per_page (ModelAdmin attribute) - list_select_related (ModelAdmin attribute) - listdir() (Storage method) - lists() (QueryDict method) - ListView (built-in class) - LiveServerTestCase (class in django.test) …