Django: фильтр ManyToManyfield всех элементов в QuerySet

В основном я хочу сделать что-то вроде этого:

Мне нужен отдельный список всех продуктов из всех выполненных заказов, но я хочу сохранить/аннотировать? Ссылку заказа('refCode') на объект Product.

Order.objects.filter(is_completed=True).order_by('-date_created').products.all().filter(dlLocation__isnull=True).distinct()

Обратите внимание на ".products.all()".

К сожалению, это не корректный код. Поэтому я решил сделать 2 отдельных набора запросов следующим образом:

completedOrders = Order.objects.filter(is_completed=True).order_by('-date_created').values_list('refCode', 'products', named=True)
#<QuerySet [Row(refCode='7822788', products=307691), Row(refCode='7822788', products=307905) Row(refCode='4083860', products=307874)]>


downloads = Product.objects.filter(topicID__in=completedOrders.values('products')).filter(dlLocation__isnull=True).distinct()
#<QuerySet [<Product: product12>, <Product: product43>, <Product: product35>>

Как я могу вставить объект Product по его соответствующему topicID в дикту строки completedOrders?

Результат может быть примерно таким:

#<QuerySet [Row(refCode='7822788', products=<Product: product12>), Row(refCode='7822788', products=<Product: product43>) Row(refCode='4083860', products=<Product: product35>)]>

Order models.py:

class Order(models.Model):
    refCode      = models.CharField(max_length=15, unique=True, primary_key=True, default=generateOrderRefCode)
    products     = models.ManyToManyField(Product)
    is_completed = models.BooleanField(null=False, default=False)
    ...

Product models.py:

class Product(models.Model):
    topicID     = models.IntegerField(null=False, unique=True, primary_key=True)
    dlLocation  = models.CharField(max_length=200, null=True, blank=True)
    ...

Прошу прощения за плохое объяснение и грамматические ошибки, это первый раз, когда я задаю вопрос на StackOverflow и моя голова практически сломана от долгой работы над этим проектом, или я схожу с ума lol. Спасибо заранее и желаю вам жизни, полной любви и радости <3

Вернуться на верх