Django отображает app.Model.None для атрибута с отношением Foreign Key
Пытаюсь отобразить атрибуты модели (Model2), доступ к которой осуществляется через поле ManytoManyField в Model1. Однако Model2 имеет поле ForeignKey другой модели (Model3).
То есть я хочу отобразить примечания о песне (модель SongNote - Model2), где название песни хранится в модели Song (Model3). Модель SongNote является атрибутом ManytoManyField в модели Note (Model1).
Вау. Вот почему компьютеры читают код...
models.py:
# Model3
class Song(models.Model):
title = models.CharField(max_length=255, null=True)
...
# Model2
class SongNote(models.Model):
TYPE_CHOICES = (
('R', 'Review',),
('W', 'Work on',),
)
type = models.CharField(
max_length=140,
choices=TYPE_CHOICES,
default='W',
)
song = models.ForeignKey(Song, null=True, on_delete=models.CASCADE)
...
def __str__(self):
song_name = str(self.type) + " - " + str(self.song)
return song_name
# Model1
class Note(models.Model):
date = models.DateField()
student = models.ForeignKey(
CustomUser,
on_delete=models.CASCADE,
)
song_note = models.ManyToManyField(SongNote)
views.py:
class NotesDetailView(DetailView):
model = Note
template_name = "note_detail.html"
template.html
<div class="card">
<div class="card-header">
<span class="text-muted">{{ object.student }}</span> ·
<span class="font-weight-bold">{{ object.date }} </span>
</div>
<div class="card-body">
<h5 class="card-title">Songs</h5>
<p class="card-text">{{ object.song_note }}</p> # this displays as "[R/W] - [app].SongNote.None"
</div>
</div>
Я пробовал различные циклы for в шаблоне. Пытался использовать QuerySets в view.py. И поискал в интернете (этот пост - самое близкое, что я нашел)
Возможно, стоит отметить (простите за каламбур), что в моей админке SongNotes упоминаются без ссылки на внешний ключ, например, W - [app].SongNote.None"
Заранее спасибо. Прошу прощения за громоздкий первый пост.