Уведомления

Группа в Telegram: @pythonsu

#1 Март 1, 2021 09:12:30

Jimy
Зарегистрирован: 2019-01-23
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод данных из связанных таблиц

Добрый день! Вот есть две связанные таблицы. Нужно вывести данные из обоих. Сначала из первой (Наименование категории), затем относящиеся к этой категории товары из второй таблицы. Затем вторая категория, связанные с ней товары и так далее… Мне не важно, как их выводить, таблицей или вложенным списком, все равно… Я не прошу готовый код, просто подскажите принцип, как в цикле пройтись по таблицам и вывести в шаблон. А может, не в цикле? Я новичок в Джанго, вот туплю с такой простой задачей… Спасибо!
p.s. Я знаю как вывести список категорий в виде ссылок и получить связанные с ними товары при клике на определенную ссылку. Но мне надо сначала общий список с категориями и связанными с ними товарами

  • Категория 1
    Товар 1 категории 1
    Товар 1 категории 1
    Категория 2
    Товар 1 категории 2
    Товар 1 категории 2
……

Офлайн

#2 Март 1, 2021 10:12:23

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 562
Репутация: +  57  -
Профиль   Отправить e-mail  

Вывод данных из связанных таблиц

Jimy
Вот есть две связанные таблицы
Покажи настоящие таблицы, которые должны быть на входе, и напиши что должно получится на выходе,в каком виде.

Офлайн

#3 Март 1, 2021 11:49:54

Jimy
Зарегистрирован: 2019-01-23
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод данных из связанных таблиц

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']
Хочу получить примерно так:
Первые блюда
Борщ
Суп
Еще какое то блюдо
Вторые блюда:
Котлеты
Еще что-то….

Я там во вью написал цикл. Выводит на печать в консоль. Выводит правильно. А как в шаблоне то сделать?

Отредактировано FishHook (Март 1, 2021 12:25:18)

Офлайн

#4 Март 3, 2021 08:04:16

Jimy
Зарегистрирован: 2019-01-23
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод данных из связанных таблиц

Вопрос снят. Если кому интересно, то так… Не знаю, верно ли, но работает

 <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 %}

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version