Django Queryset only and defer

Django Queryset only and defer

Jan 2, 2023·

1 min read

Play this article

Table of contents

No heading

No headings in the article.

In Django, you can use the defer() method on a QuerySet to specify that certain fields should not be retrieved from the database when the QuerySet is evaluated. This can be useful if you have fields in your model that contain large amounts of data and you don't need them for a particular query.

The exclude() method is similar to defer(), but it works at the row level, while defer() works at the attribute level. This means that the arguments passed to exclude() are used in the WHERE clause of the generated SQL query, while defer() changes the list of fields included in the SELECT clause.

The opposite of defer() is only(), which allows you to specify that only certain fields should be retrieved from the database.