Фильтрация вывода товара из заказа
Нужно сделать фильтрацию вывода товара из заказа. Есть заказ и нужно вывести только те товары, у которых категория, например, "Смартфоны"... Как можно это сделать?
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