Поле возвращает значение null, даже если оно содержит значение

При создании нового объекта (музыкального трека) я указываю в одном из полей название плейлиста. Однако после сохранения данных из формы значение поля playlist во фронтенде равно null, хотя в панели администратора значение этого поля есть. Я не понимаю, как я могу получить текстовое значение имени поля (плейлист), которое я указываю при создании, во фронтенде оно всегда равно null.

models.py:

class Composition(models.Model):
    title = models.CharField(max_length=500)
    artist = models.CharField(max_length=500)
    playlist = models.ForeignKey('PlayList', on_delete=models.CASCADE, blank=False)
    time_length = models.DecimalField(blank=True, max_digits=20, decimal_places=2)
    audio_file = models.FileField(validators=[validate_is_audio])
    cover_image = models.ImageField()

    def save(self, *args, **kwargs):
        if not self.time_length:
            audio_length = get_audio_length(self.audio_file)
            self.time_length = audio_length
        return super().save(*args, **kwargs)


class PlayList(models.Model):
    name = models.CharField(max_length=500)

мои взгляды

def addSong(request):
    form = AddCompositionForm()
    if request.POST:
        form = AddCompositionForm(request.POST, request.FILES)
        if form.is_valid():
            instance = form.save(commit=False)
            playlist = form.cleaned_data.get('playlist')
            music_playlist = PlayList.objects.get_or_create(name=playlist)
            instance.playlist = music_playlist[0]
            instance.save()
            return redirect("music_player:home_page")

    return render(request, 'addSong.html', {
        'form': form
    })

функция фронтенда:

    const setSRC = () => {
        player.src = `{{ MEDIA_URL }}/${musics[compositionIndex].audio_file}`
        song_title.textContent = musics[compositionIndex].title
        artist.textContent = musics[compositionIndex].artist
        music_img.setAttribute('src', `{{ MEDIA_URL }}/${musics[compositionIndex].cover_image}`)

        if (musics[compositionIndex].playlist != null) {
            // PLAYLIST ALWAYS == null, why??
            playlist_name.textContent = musics[compositionIndex].playlist
        } else {
            playlist_name.textContent = "Single"
        }
    }

значение в панели администратора:

admin_panel

значение в javascript:

enter image description here

Все поля, кроме списка воспроизведения, не равны null и работают правильно.

Вы должны вернуть name список воспроизведения в самой модели PlayList, используя метод __str__() так:

class PlayList(models.Model):
    name = models.CharField(max_length=500)
    def __str__(self):
        return f"{self.name}"
Вернуться на верх