How to limit columns returned by Django query?

That seems simple enough, but all Django Queries seems to be 'SELECT *'

How do I build a query returning only a subset of fields ?

47401 次浏览

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

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.