Как я могу найти объединение двух запросов Django?



У меня есть модель Django с двумя методами пользовательского менеджера. Каждый возвращает другое подмножество объектов модели, основанное на другом свойстве объекта.



есть ли способ получить queryset или просто список объектов, это объединение запросов, возвращаемых каждым методом диспетчера?

602   2  

2 ответов:

это работает и выглядит немного чище:

records = query1 | query2

Если вы не хотите дубликатов, то вам нужно будет добавить .distinct():

records = (query1 | query2).distinct()

начиная от версия 1.11, Django querysets имеют встроенный метод объединения.

q = q1.union(q2) #q will contain all unique records of q1 + q2
q = q1.union(q2, all=True) #q will contain all records of q1 + q2 including duplicates
q = q1.union(q2,q3) # more than 2 queryset union

посмотреть мои блоге на этом для получения дополнительных примеров.

Comments

    Ничего не найдено.