Django模型复杂过滤器

时间:2013-09-04 13:21:03

标签: python django django-forms

这是模型属性:

    name, version, date_added, last_modified

我有一个这样的清单:

    [(name1, version1), (name2, version2), (name3, version3)...]

我想通过(名称,版本)元组过滤模型。我怎么能这样做?

1 个答案:

答案 0 :(得分:4)

你可以这样做:

from operator import or_
from django.db.models import Q

l = [(name1, version1), (name2, version2), (name3, version3)...]

data = YourModel.objects.filter(reduce(or_, Q(name=name, version=version)
                                            for name, version in l))

我认为sql和django orm中的in都是针对单个字段设计的。