Hi, I tried the following query and I got the get_absolute_url and a human readable version of a choice field in my django template (get_FOO_diplay) working correctly ,
To amplify @fabtjar 's answer a little, and assuming you’re using CBVs, the get_queryset function is supposed to return a queryset (values doesn’t).
Review the docs at QuerySet API reference | Django documentation | Django to see what functions return querysets and which don’t. You shouldn’t be using any function on your query that doesn’t return a queryset in that method.
Unless you can demonstrate an actual “problem” with this, supported by metrics, I suggest you not worry about it.
In the general case:
You’ve probably spent more time thinking about this issue than you will ever save over the life of your project.
By definition, get_queryset is supposed to return a queryset, not a list.
Keeping it as a queryset makes other changes easier going forward. Should you ever change your view, you won’t need to go back and change your get_queryset method.