вывод связанных моделей в ListView
подскажите что я упустил. Только начал изучать django. Хочу выводить в родительской модели связанные поля из дочерней. models.py
class Category(models.Model):
name_category = models.CharField(verbose_name = 'Название категории', max_length = 100, null=True)
image = models.ImageField(null=True, blank=True, upload_to="media/", verbose_name='Изображение')
def __str__(self):
return self.name_category
class Subcategory(models.Model):
category = models.ForeignKey(Category, on_delete=models.CASCADE, verbose_name='категория', related_name='photos')
name_subcategory = models.CharField(verbose_name = 'Название подкатегории', max_length = 100, null=True)
image = models.ImageField(null=True, blank=True, upload_to="media/", verbose_name='Изображение')
url = models.SlugField(max_length=160, unique=True, null=True)
def __str__(self):
return self.name_subcategory
views.py
from django.shortcuts import render
from django.views.generic import ListView
from .models import Category,Subcategory
class CategoryView(ListView):
"""список категорий"""
model = Category
в шаблоне(раньше использовал только функции и все выводилось примерно так)
{% extends 'base.html' %}
{% block content %}
{% for category in category_list %}
{{category.name_category}}
<img src="{{category.image.url}}" width="100px" height="100px">
{% for sub in category.subcategory_set.all %}
{{ sub }}
{% endfor %}
{% endfor %}
{% endblock %}
Но под категории не выводятся
Ответы (1 шт):
Автор решения: lleballex
→ Ссылка
Я не вижу у тебя нигде subcategory_set, как ты указал в шаблоне. Если посмотреть в моделях, то related_name ты указывал, как photos. Может попробовать так: {% for sub in category.photos.all %}