在django中动态创建“OR”查询

时间:2013-11-27 11:01:38

标签: django django-queryset

我想在django中创建一个AND查询集。查询是给我所有具有特定ID的客户。我有id存储在python列表中。我最初的想法是以下

ids = range(1,21)
specific_customers = []
customers = Customer.objects.all() //Get them all
for customer in customers:
    if customer.pk in ids:
        specific_customers.append(customer)

但我不认为这是最好的方法。有更好或更快的想法吗?

1 个答案:

答案 0 :(得分:2)

使用in field lookup

ids = range(1,21)
specific_customers = Customer.objects.filter(pk__in=ids) 

或者,如果使用range()不仅仅是一个示例,并且这实际上将始终是一系列数字,您应该使用range lookup代替:

specific_customers = Customer.objects.filter(pk__range=(1, 21)) 

这两个示例都等同于您的原始代码。