diff --git a/django/db/models/query.py b/django/db/models/query.py index 0de5787f42..bd79e4bf36 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -1416,11 +1416,14 @@ class QuerySet(AltersData): def values_list(self, *fields, flat=False, named=False): if flat and named: raise TypeError("'flat' and 'named' can't be used together.") - if flat and len(fields) > 1: - raise TypeError( - "'flat' is not valid when values_list is called with more than one " - "field." - ) + if flat: + if len(fields) > 1: + raise TypeError( + "'flat' is not valid when values_list is called with more than one " + "field." + ) + elif not fields: + fields = [self.model._meta.concrete_fields[0].attname] field_names = {f: False for f in fields if not hasattr(f, "resolve_expression")} _fields = []