Как обратится к постам через альбом, для последующего вывода?
Непонятно о чем речь
У меня есть модель альбома, там хранятся записи (грубо говоря, альбом объединяет несколько песен).
Как вывести все песни из альбома?
Так а в модели что? Если есть связь с песнями, то можно обращаться к album.songs
В моделях вот что
class Post(models.Model):
name = models.CharField(max_length=50, verbose_name='Song title')
genre = models.ForeignKey('Genre',verbose_name='Genre', on_delete=models.DO_NOTHING)
music_file = models.FileField(upload_to='tracks/', verbose_name='Select a music file')
author = models.ForeignKey(MyUser, on_delete=models.CASCADE, related_name='author')
liked = models.ManyToManyField(MyUser, related_name='liked', blank=True)
like_counts = models.IntegerField(default=0)
online = models.BooleanField(default=False)
counter = models.IntegerField(default=0)
date = models.DateField(auto_now_add=True)
class Album(models.Model):
name = models.CharField(max_length=75)
music_file = models.ManyToManyField(Post)
genre = models.ForeignKey('Genre',verbose_name='Genre', on_delete=models.DO_NOTHING)
owner = models.OneToOneField(MyUser, on_delete=models.CASCADE, default='')
т.е к записи я должен обращаться вот так album.music_file
. И это будет работать в цикле?
Еще надо добавить например .all()
def Main(request):
posts = Post.objects.filter(online=True)
albums = Album.objects.all()
tracks = albums.music_file.all()
При таком вызове я получаю ошибку QuerySet' object has no attribute 'music_file
. Как я понял, это работает только если мы получаем единичную запись albums
, т.е. например albums = Album.objects.get(owner=request.user.id)
Ну дык так и надо, оно ж у альбома, а не у коллекции альбомов.
А как в таком случае получить для коллекции?
Так а смысл? Не проще тогда сразу все песни получить?)
тут я получаю просто все посты, независимо от того, находятся они в альбоме или нет. А я хочу выводить альбом (информацию о нем) и все посты, содержащиеся в альбоме
Так и что должно быть в коллекции песен полученной от коллекции альбомов? Это тогда будет просто коллекция всех песен, возможно еще и с повторами если одна песня в нескольких альбомах.
Тут видимо нужен цикл по альбомам и цикл по песням альбома.
Все песни, содержащиеся в этом альбоме
Да, вот это нужно
Вообщем я просто указал в шаблонизаторе {% for i in album.music_file.all %}