Здравуйте!
<br>К примеру есть таблица
class Category(models.Model):
name = models.CharField(max_length=63)
class Product(models.Model):
category = models.ForeignKey(Category)
name = models.CharField(max_length=63)
Хочу получить вывод продуктов, сгруппированных по категориям:
- category1
- product1
- product2
-
...
-
category2
- product1
- product2
-
...
-
...
Делаю
products=[(cat.name, Product.objects.filter(category=cat)) for cat in Category.objects.all()]
Получается category.count + 1 запросов в БД (что хреново для производительности). Хотелось бы сделать что-то типа:
products=Product.objects.all().order_by('category__name')
а потом как-то вывести это в виде, приведеном выше. Либо поделить во view'е средствами python. Вообщем база будет большая (категории и продукты только для примера) и не хочется делать в нее 100500 запросов при рендере одной страницы.
<br>
Подскажите, пожалуйста, адекватное решение)