It is possible to limiting QuerySet in this kind of way:
creators_list = ['jane', 'tarzan', 'chita'] my_model.objects.filter(creator=creators_list)
???
To filter a Python Django query with a list of values, we can use the filter method with in . to search Blog entries with pk set to 1,4 or 7 by calling Blog. objects. filter with the pk_in argument set to [1, 4, 7] .
The filter() method is used to filter you search, and allows you to return only the rows that matches the search term.
A QuerySet is a collection of data from a database. A QuerySet is built up as a list of objects. QuerySets makes it easier to get the data you actually need, by allowing you to filter and order the data.
You mean like this?
my_model.objects.filter(creator__in=creator_list)
Docs: http://docs.djangoproject.com/en/dev/ref/models/querysets/#in
EDIT
This is now a bit outdated. If you run into problems with the original code, try this:
from django.db.models import Q my_filter_qs = Q() for creator in creator_list: my_filter_qs = my_filter_qs | Q(creator=creator) my_model.objects.filter(my_filter_qs)
There's probably a better way to do it but I'm not able to test it at the moment.
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