2010-10-15 1 views
0

Есть ли быстрый и простой способ сделать это? Я не смог найти ничего, что уже есть, что, похоже, уже сделано.Django - Сделайте два отдельных запроса, объедините результаты, затем устраните дубликаты

Поскольку это запрос, я не думаю, что могу использовать уникальные свойства Set для решения проблемы. есть идеи?

+0

Возможный дубликат или http://stackoverflow.com/questions/108193/union-and-intersect-in-django –

ответ

4

Используйте объекты Q, по одному для каждого запроса, и OR вместе. Затем используйте distinc()

qs = SomeModel.objects.get(Q(some_attribute=something) | 
          Q(some_other_attribute=something)).distinct() 
+0

интересный, спасибо! к сожалению, я использую бэкэнд, который не поддерживает ключевое слово «ИЛИ», поэтому он не может выполнить это как один запрос, а два полностью отдельных. Я не смог определить способ использования отдельных двух полностью изолированных запросов. – killerbarney

+1

Ну, если вам не нужен запрос в ответ, вы можете просто сделать результаты = set (list (qs1) + list (qs2)). –

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

  • Нет связанных вопросов^_^