#django #django-models #django-views #django-templates
#django #django-модели #django-представления #django-шаблоны
Вопрос:
В моем шаблоне я хотел бы показать «проблемы», сгруппированные по «категории», например
Категория 1
- Задача 1
- Задача 2
Категория 2
- Задача 3
- Задача 4
Вот мой models.py:
class Category(models.Model):
title = models.CharField(max_length=100)
description = models.CharField(max_length=400)
class Challenge(models.Model):
category = models.ForeignKey(Category, on_delete=models.CASCADE)
question_text = models.CharField(max_length=200)
answer_text = models.CharField(max_length=200)
В моем файле шаблона я хочу сделать что-то вроде этого:
{% for category in category_list %}
{{ category.title }}
<ul>
{% for challenge in Challenge.objects.get(category_id=category.id) %}
<li>{{ challenge.question_text }}</li>
{% endfor %}
</ul>
{% endfor %}
Но я понимаю, что вы не можете вызывать функции в шаблонах. Как еще я могу отображать данные из двух наборов в отношениях?
Ответ №1:
Предполагая, что ваш category_list является набором запросов, вы можете получить связанные значения запроса через отношение «Многие к одному»
{% for category in category_list %}
{{ category.title }}
<ul>
{% for challenge in category.challenge_set.all %}
<li>{{ challenge.question_text }}</li>
{% endfor %}
</ul>
{% endfor %}