Фильтрация вывода товара из заказа

Нужно сделать фильтрацию вывода товара из заказа. Есть заказ и нужно вывести только те товары, у которых категория, например, "Смартфоны"... Как можно это сделать?

models.py

class Product(models.Model):
    title = models.CharField(db_index=True, max_length=255, verbose_name='Наименование')
    category = models.ForeignKey(Category, verbose_name='Категория', on_delete=models.CASCADE)
    slug = models.SlugField(db_index=True)
    image = models.ImageField(upload_to='product/%Y/%m/%d/', verbose_name='Изображение', blank=True)
    description = models.TextField(verbose_name='Описание', null=True)
    price = models.DecimalField(max_digits=9, decimal_places=2, verbose_name='Цена')


class Order(models.Model):
   #Информация о заказчике
   #Информация о заказе


class OrderProduct(models.Model):
   orders = models.ForeignKey('Order', verbose_name='Заказ', on_delete=models.CASCADE,
                               related_name='related_orders_product')
   product = models.ForeignKey(Product, verbose_name='Категория', on_delete=models.CASCADE)
   #Остальные данные типа количество и общая цена

Ответы (1 шт):

Автор решения: Andrey Maslov
order_smartphones = OrderProduct.objects.filter(product__category=smartphones_category_id)

вместо smartphones_category_id нужно подставить id категории "Смартфоны", либо саму категорию

https://docs.djangoproject.com/en/3.1/topics/db/queries/#lookups-that-span-relationships

→ Ссылка