2013-11-27 46 views
1

我想在django中創建一個AND queryset。查詢是給所有客戶一定的ID。我有id存儲在python列表中。我最初的想法如下動態在django中創建「OR」查詢

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) 

但我不認爲這是做到這一點的最佳方式。任何更好或更快的想法?

回答

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)) 

這兩個示例都等同於您的原始代碼。

+0

dammnnn !!!!!不知道django有這個東西!謝謝路德維克,救了我的一天! – Apostolos

+0

當然,沒問題。如果答案解決了您的問題,您可能需要將其標記爲:) –

+0

當然......這裏是您的標記! – Apostolos