У меня есть список Products
, каждый из которых принадлежит к другому Distributor
.Django объединить два запроса на ту же модель
Мне нужно отобразить форму для каждого из этих продуктов и их соответствующего дистрибьютора. Я могу сделать это с этим кодом:
form_products = ProductFormSet(
queryset = Product.objects.filter(product__id=product_id)
)
Проблема заключается в том, что мне нужно, чтобы отобразить форму с продуктом принадлежности к определенной Distributor
под названием «FirstDistributor» первый на странице.
Я попытался сделать это со следующим кодом, используя | оператор между запросами:
form_products = ProductFormSet(
queryset=(
Product.objects.filter(
product__id=product_id,
distributor__name='FirstDistributor') |
Product.objects.filter(
product__id=product_id
).exclude(distributor__name='FirstDistributor')
)
)
Но формы все еще отображаются в том же порядке. Как я могу объединить эти два запроса в один, сохраняя тот же порядок?
q1 = Product.objects.filter(product__id=product_id,
distributor__name='FirstDistributor')
и
q2 = Product.objects.filter(product__id=product_id
).exclude(distributor__name='FirstDistributor')
Спасибо!
Класс QuerySet distributor_name = «FirstDistributor» реализует интерфейс итератора, поэтому он может быть использован как таковой, следовательно, ** itertools.chain ** метод может быть использован для объединения нескольких querysets одной и той же модели вместе –