Дебаг цикла в template в django
``
{% extends "base.html" %}
{% block body_block %}
<h2>тестовые тесты</h2>
<ol>
<li>{{ food_detail.food_name }}</li>
</ol>
<h3>Комментари</h3>
<ol>
{% for comments in food_detail.Food_r.all %}
<li>{{ comments.text_t }}</li>
{% empty %}
<li>нет Комментариев</li>
{% endfor %}
</ol>
{% endblock%}
``
как мне понять почему этот цикл выдает пустой результат? food_detail.food_name - данные возвращают
class Comments_Food(models.Model):
date_d = models.DateTimeField(auto_now=False,
verbose_name="Время")
Food_r = models.ForeignKey(Food,
models.DO_NOTHING,
verbose_name="Блюдо")
Ответы (1 шт):
Автор решения: unknown
→ Ссылка
Судя по комментариям к вопросу, нужно вывести связанные объекты для экземпляра Food, который в шаблоне представлен как food_detail.
{% for comment in food_detail.comments_food_set.all %}
<li>{{ comment.text_t }}</li>
{% empty %}
<li>нет Комментариев</li>
{% endfor %}
P.S. Непонятно, что такое text_t? В шаблоне в переменной comment будет храниться экземпляр класса Comments_Food. Поэтому из comment можно получить доступ к каждому полю модели.
Советую задать related_name для обратной связи и задавать имена атрибутов (полей) в стиле snake_case, а название классов - в CamelCase. Тогда модель и шаблон будут выглядеть следующим образом:
models
class CommentsFood(models.Model):
date_d = models.DateTimeField(auto_now=False,
verbose_name="Время")
food_r = models.ForeignKey(Food,
models.DO_NOTHING,
verbose_name="Блюдо",
related_name="comments")
template
{% for comment in food_detail.comments.all %}
<li>{{ comment.text_t }}</li>
{% empty %}
<li>нет Комментариев</li>
{% endfor %}