Is there a way I can pass a list of fields to be retrieved by the QuerySet.values(). I have a model and I want to retrieve different sets of fields from it on different occasions.
The simplest way you can get the list of objects of an attribute is to first get a query-set of that attribute alone using values_list then converting the django query-set to a python set using set() and finally to a list using list() .
The filter() method is used to filter you search, and allows you to return only the rows that matches the search term.
In simpler terms, annotate allows us to add a pseudo field to our queryset. This field can then further be used for filter lookups or ordering.\ Ex: Suppose you want to all the Books along with the total number of chapters present in each one, then you could use annotate as follows: Simple annotate example.
You can use the *
operator to expand a list out into separate arguments when passed to a function, as described here in the Python tutorial.
>>> qs = User.objects.all()
>>> values = ['first_name', 'email']
>>> qs.values(*values)
yields
[{'first_name': u'aaaa', 'email': u'[email protected]'},
{'first_name': u'', 'email': u'[email protected]'},
{'first_name': u'', 'email': u'[email protected]'},
'...(remaining elements truncated)...']
(I further truncated the output for brevity).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With