2013-11-27 3 views
1

Я хочу создать набор запросов AND в django. Запрос Дайте мне всех клиентов с определенными идентификаторами. У меня есть идентификатор, хранящийся в списке python. Моя первая мысль была следующаяДинамическое создание запроса «ИЛИ» в django

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 !!!!! Не знал, что у джанго было это! Спасибо, Людвик, спас мой день! – Apostolos

+0

Несомненно, никаких проблем. Если ответ решит вашу проблему, вы можете отметить ее принятой :) –

+0

Конечно ... вот ваша оценка! – Apostolos

Смежные вопросы