Я не могу заставить это значение таблицы foreignkey отображаться в шаблоне django
Я не могу добиться отображения некоторых значений ForeignKey в моем шаблоне. Вот две модели, о которых идет речь в вопросе:
** Models.py **
class Portfolio(models.Model):
title = models.CharField(max_length= 50, null= True)
description = models.TextField(max_length= 300, null= True)
class Spotify_Playlist(models.Model):
portfolio = models.ForeignKey(Portfolio, on_delete= models.CASCADE, null= True)
title = models.CharField(max_length= 50)
spotify_url = models.CharField(max_length= 50)
description = models.TextField(max_length= 100, null= True)
artist_img = models.ImageField(null= True, upload_to= 'image/')
*** Admin.py ***
@admin.register(Portfolio)
class PortfolioAdmin(admin.ModelAdmin):
inlines = [
SpotyListInline,
SpotySingleInline,
YoutubeInline,
]
class SpotyListInline(admin.TabularInline):
model = Spotify_Playlist
Итак, я пытаюсь отобразить список воспроизведения spotify в моем шаблоне следующим образом
*** index.html ***
<section id="portfolio">
{% for portfolio in portfolios %}
<h1>{{ portfolio.title }}</h1>
<p>{{ portfolio.description }}</p>
{% for playlist in portfolio.Spotify_Playlist_set.all %}
<p>{{playlist.title}}</p>
<iframe src='https://open.spotify.com/embed/playlist/{{ playlist.spotify_url }}'
width="50%" height="380" frameBorder="0" allowtransparency="true" allow="encrypted-media"></iframe>
{% endfor %}
{% endfor %}
</section>
Но {{playlist.value}} и встроенный плеер с {{playlist.spotify_url}} не отображаются. Буду очень признателен за любую помощь
По умолчанию имя обратного отношения пишется в нижнем регистре. Попробуйте:
{% for playlist in portfolio.spotify_playlist_set.all %}
Из документации https://docs.djangoproject.com/en/dev/topics/db/queries/#following-relationships-backward:
Если модель имеет ForeignKey, экземпляры модели с иностранным ключом будут иметь доступ к менеджеру, который возвращает все экземпляры первой модели. По умолчанию этот менеджер называется FOO_set, где FOO - имя исходной модели, lowercased. Этот менеджер возвращает наборы запросов, которые можно фильтровать и манипулировать ими, как описано в разделе "Получение объектов" выше.
.