Django'objects.filter()'有列表吗?

krz*_*hub 18 django django-queryset

可以用这种方式限制QuerySet:

creators_list = ['jane', 'tarzan', 'chita']
my_model.objects.filter(creator=creators_list)
Run Code Online (Sandbox Code Playgroud)

???

Bry*_*law 41

你的意思是这样的?

my_model.objects.filter(creator__in=creator_list)
Run Code Online (Sandbox Code Playgroud)

文档:http://docs.djangoproject.com/en/dev/ref/models/querysets/#in

编辑

现在有点过时了.如果您遇到原始代码问题,请尝试以下方法:

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)
Run Code Online (Sandbox Code Playgroud)

可能有更好的方法,但我目前无法测试它.

  • @Bryce:宇宙的祝福还不够吗;)? (2认同)
  • @Chris 也许有不止一个宇宙,也许我们只是某个多元宇宙的一部分:p,你永远不知道。 (2认同)