@MalekBV

Django. Как вывести в html данные из другой модели foreignKey?

Здравствуйте, у меня есть Модель Tag и модель Anime
Через foreign key я соединил Tag с Anime, но мне нужно вывести все тэги в том месте, где я прохожусь циклом по anime
anime.tag не получается, так как нет такого атрибута в самой модели, как вывести все тэги?
Models.py:
class Anime(models.Model):
    title = models.CharField("Аниме", max_length = 50)
    description = models.TextField("Описание")
    picture = models.ImageField(upload_to='images/', blank = True, null = True, verbose_name = "Картинка")
    pub_date = models.DateTimeField("Дата выхода записи")
    pub_date_post = models.IntegerField("Дата выхода Аниме", default = 0)
    like = models.IntegerField("Лайков", default = 0)

class Tag(models.Model):
    name = models.CharField("Тэг", max_length = 30)
    animes = models.ForeignKey(Anime, on_delete = models.CASCADE, blank = True, null=True)


Шаблон HTML:

{% block content %}
<div class="wrapper">
  <div class="container">
    <h1 class="list">ТОП АНИМЕ</h1>
    <div class="row">
        {% for a in anime %}
          <div class="col-4 anime-top mb-5">
            <img src="{{ a.picture.url }}" alt="picture" class="anime-picture">
            <h5 class="anime-title">{{ a.title }}</h5>
            <p>Жанры: {{ a.tag }}</p> <--- Здесь проблема
            <p><i>Год выпуска: {{ a.pub_date_post }}</i></p>
            <p><a href="addlikes/{{ a.id }}" id="like-one-time"> <i class="far fa-heart"></i> </a>{{ a.like }}</p>
          </div>
        {% endfor %}
    </div>
  </div>
</div>
{% endblock %}


В цикле, anime это переменная из view
anime = Anime.objects.all()
return render(request, "animeapp/homePage.html", {"anime": anime})

В шаблоне, параграф жанры, нужно вывести все тэги, как это сделать?
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 1
JRazor
@JRazor
Senior StarkOverFlow Programmer
А related_name где? Ты на что вообще ссылаешься? Как база должна понять, чего ты хочешь?

Идешь в Tag, в поле animes дописываешь related_name='tags', а потом при вызове a.tags получаешь все теги. Миграцию сделать не забудь

Потом идешь во вьюху:
anime = Anime.objects.prefetch_related('tags').all()

Потом уже в шаблон:
{% for a in anime %}
     {% for tag in a.tags %}
          {{ tag }}
     {% endfor %}
{% endfor %}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Omnic Москва
от 100 000 до 160 000 руб.
CRON Махачкала
от 60 000 до 140 000 руб.
Uploadcare Санкт-Петербург
от 2 800 usd.
17 окт. 2019, в 03:16
37500 руб./за проект
16 окт. 2019, в 22:58
3200 руб./за проект
16 окт. 2019, в 22:43
3000 руб./за проект