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> &middot;
            <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"

Заранее спасибо. Прошу прощения за громоздкий первый пост.

Вернуться на верх