Найти - Пользователи
Полная версия: Вывод данных из связанных таблиц
Начало » Django » Вывод данных из связанных таблиц
1
Jimy
Добрый день! Вот есть две связанные таблицы. Нужно вывести данные из обоих. Сначала из первой (Наименование категории), затем относящиеся к этой категории товары из второй таблицы. Затем вторая категория, связанные с ней товары и так далее… Мне не важно, как их выводить, таблицей или вложенным списком, все равно… Я не прошу готовый код, просто подскажите принцип, как в цикле пройтись по таблицам и вывести в шаблон. А может, не в цикле? Я новичок в Джанго, вот туплю с такой простой задачей… Спасибо!
p.s. Я знаю как вывести список категорий в виде ссылок и получить связанные с ними товары при клике на определенную ссылку. Но мне надо сначала общий список с категориями и связанными с ними товарами
  • Категория 1
    Товар 1 категории 1
    Товар 1 категории 1
    Категория 2
    Товар 1 категории 2
    Товар 1 категории 2
……
xam1816
Jimy
Вот есть две связанные таблицы
Покажи настоящие таблицы, которые должны быть на входе, и напиши что должно получится на выходе,в каком виде.
Jimy
from django.db import models

# Create your models here.
 class Products(models.Model):
    title=models.CharField(max_length=150,verbose_name='Наименование блюда')
    output=models.CharField(max_length=10,verbose_name='Выход')
    price=models.FloatField('Цена')
    created_at=models.DateTimeField('Дата создания',auto_now_add=True)
    is_published=models.BooleanField(default=True ,verbose_name='Показ')
    photos=models.ImageField(upload_to='photos/%Y/%m/%d/',blank=True)
    category=models.ForeignKey('Category',on_delete=models.PROTECT,null=True,verbose_name='Категория')
    def __str__(self):
        return self.title
    class Meta:
        verbose_name="Наименование"
        verbose_name_plural="Наименования"
        ordering=['category','title','price']
class Category(models.Model):
    title=models.CharField(max_length=100,db_index=True,verbose_name='Категория')
    photos = models.ImageField(upload_to='photos/%Y/%m/%d/', blank=True)
    def __str__(self):
        return self.title
    class Meta:
        verbose_name="Категория"
        verbose_name_plural="Категории"
        ordering = ['title']
Хочу получить примерно так:
Первые блюда
Борщ
Суп
Еще какое то блюдо
Вторые блюда:
Котлеты
Еще что-то….

Я там во вью написал цикл. Выводит на печать в консоль. Выводит правильно. А как в шаблоне то сделать?
Jimy
Вопрос снят. Если кому интересно, то так… Не знаю, верно ли, но работает
 <body>
{% for i in CatList %}
    <ul>
        <li><h3>{{i.title}}</h3></li>
{% for j in ProdList %}
<ul>
{% if i.pk == j.category_id %}
    <li>{{j.title}}</li>
{% endif %}
</ul>
{% endfor %}
</ul>
{% endfor %}
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB