Django 'objects.filter()' with list?

2019-03-09 22:36发布

It is possible to limiting QuerySet in this kind of way:

creators_list = ['jane', 'tarzan', 'chita']
my_model.objects.filter(creator=creators_list)

???

1条回答
虎瘦雄心在
2楼-- · 2019-03-09 23:20

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.

查看更多
登录 后发表回答