Предотвращение дубликатов при фильтрации по prefetch_related
У меня есть две модели: Seller
и Product
.
Каждый товар имеет внешний ключ к продавцу. Таким образом, у каждого товара есть только one
продавец, но продавец может быть связан с many
товарами.
Это внешний ключ в моем Product
-классе:
seller = models.ForeignKey(
Seller,
on_delete=SET_NULL,
null=True,
related_name="products",
)
Теперь я пытаюсь запросить всех продавцов и получить сопутствующие товары для каждого продавца вместе с ними.
sellers = (
Seller.objects.filter(
..doing some filtering
).prefetch_related("products").filter(products__branch=current_branch)
)
Благодаря этому в моем sellers
есть несколько записей для многих продавцов, поскольку я фильтрую по товарам, связанным с prefetche_related, что приводит к объединению внутри базы данных-запроса.
Каким образом лучше всего получить список продавцов, каждый из которых имеет свой список товаров? Без дубликатов. Мне все еще нужно фильтровать продукты, так как я не хочу, чтобы все продукты запрашивались.