Не получается воспроизведение файлов

Извиняюсь за мои многочисленный вопросы,но так как я учу этот фреймворк сам,иногда не могу найти ответы на интересующие меня вопросы.
models.py

class play_track(models.Model):
	nm = models.CharField(max_length=50, null = True )
	track = models.FileField(upload_to = 'arch/%Y/%m/%d/')

class play_list(models.Model):
	name = models.CharField(max_length = 100,verbose_name = 'Название')
	all_track = models.ManyToManyField(play_track,null = True)
	artist = models.ForeignKey(User,on_delete = models.CASCADE,null = True)

Возможно ошибка заключается не в моделях,но по большей части я склоняюсь к ним.Или же я применил неправильную связь между моделями,но в информации по плейлистам,которую я смогу найти,говорилось про ManyToManyField."GET /lk/gl.play_track.None HTTP/1.1" 404 3635 такой ответ от сервера приходит при переходе на страницу с плейлистами,хотя объекты,объявленные в play_track созданы.

Из этого кода не особо понятно откуда берется

Берется из медиа файлов.То есть по сути треки должны сначала добавляться в play_track,что собственно и происходит(это видно в медиа файлах),но почему-то через play_list треки не выводятся.

Так надо начать с кода вывода этой ссылки.

Странное имя модели :thinking:
Может быть слово play лишнее?

Это name что ли? Не надо так сокращать.

Можно по подробнее?Вы про контроллер?

Просто это вторая модель такого типа,первая служит только для вывода одного трека.

Что в коде формирования страницы, где это происходит?


Так а тут разве не один? :thinking:

Имена классов кстати обычно CamelCase в Питоне.
Post, User, Track, PlayList, …

Вот контроллер:

def my_cab(request):
    ab_pl = play_list.objects.all()
    context = {'ab_pl' : ab_pl} 
    return render(request,'womglav/my_cab.html', context)

И HTML:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    
</head>
<body>
    <div>
        {% for pl in ab_pl %}
 
        <h1>{{pl.name}}</h1>
        <h2>{{pl.artist}}</h2>
        
        {%endfor%}
    </div>
    
    {% for pl in ab_pl%}
    <audio src = {{pl.all_track}} controls></audio>
    {%endfor%}
 
</body>
</html>

Тут все плейлисты выводятся?

Тогда наверно внутри этого цикла нужен еще цикл по трекам плейлиста

внутри которого и выводить <audio>.


all_track тоже странное имя (“все трек”), лучше tracks, а слово all не нужно.

То есть в контекст необходимо добавить модель play_track?А как в <audio> представить в таком случае?

Так в плейлистах же и есть треки, просто не надо пытаться запихнуть список треков в один <audio>.

А как тогда это реализовать ?

Так я ж говорю, в <audio src надо не весь список треков плейлиста пытаться запихивать, а для каждого трека из

создавать свой <audio> с путем файла трека в src.

pl.all_track это список треков.

В таком случае нужно будет получать количество треков в плейлисте?

Зачем? :thinking:

аналогично как ab_pl это список плейлистов.

Не понял Вас.

Что мешает сделать цикл по объектам pl.all_track? Это список треков плейлиста.

Ну а количество конечно можно получить если вдруг оно зачем-то понадобилось, len() или count().

Спасибо,теперь понял!