QuerySet Results as namedtuple (Django 2.0+) ¶
See also
I’m a big fan of namedtuples and apparently starting Django 2.0 so is the ORM.
In Django 2.0 a new attribute was added to values_list called named. Setting named to true will return the queryset as a list of namedtuples:
>>> user.objects.values_list(
'first_name',
'last_name',
)[0]
('Haki', 'Benita')
>>> user_names = User.objects.values_list(
'first_name',
'last_name',
named=True,
)
>>> user_names[0]
Row(first_name='Haki', last_name='Benita')
>>> user_names[0].first_name
'Haki'
>>> user_names[0].last_name
'Benita'