How to limit columns returned by Django query?

Solution 1:

In Django 1.1 onwards, you can use defer('col1', 'col2') to exclude columns from the query, or only('col1', 'col2') to only get a specific set of columns. See the documentation.

values does something slightly different - it only gets the columns you specify, but it returns a list of dictionaries rather than a set of model instances.

Solution 2:

Append a .values("column1", "column2", ...) to your query