Django+AlpineJS : получение данных объекта ForeignKey с помощью x-init и x-data и итерация по ним
У меня есть 2 модели, Band (имеет параметры название, жанр, страна) и Album (имеет ForeignKey группы, и другие параметры - название и год), и я пытаюсь сериализовать их с помощью AlpineJS так, чтобы у меня была страница, отображающая список групп со списком соответствующих альбомов рядом с ними. Обычно я могу сделать это без Alpine, но в данном случае мне нужно построить фильтрацию поиска (например, по жанру или году, но это не является текущей проблемой) с Alpine, поэтому я просто должен использовать его. Я также знаю, как получить данные объектов из одной модели, но когда их два в одном x-data div, я в растерянности.
Возможно, есть способ сделать одну единственную функцию, которая будет иметь все данные о группе и альбоме? Но тогда как бы я перечислил их рядом друг с другом, если нет запрошенного id, я не знаю. Черт возьми, я теряюсь в этом, хотя в основном понимаю все эти объектные отношения.
Приведенный ниже код - это то, что у меня есть сейчас. Пробовал это, внутренний цикл x-for не работает, но он прекрасно работает без него, т.е. если я только получаю данные Band и отображаю соответствующую информацию о них, например, жанр или страну. html-страница:
<template x-for="band in bands">
<p x-text="`${band.name} - ${band.genre}`"></p>
<template x-for="album in band.albums.all">
<p x-text="`${album.name} - ${album.year}`"></p>
</template>
</template>
</div>
views.py:
def bands(request):
bands = Band.objects.all()
data = []
for band in bands:
data.append({'name': band.name, 'genre': band.genre,
'country': band.country})
return JsonResponse(data, safe=False)
def albums(request):
albums = Album.objects.all()
data = []
for album in albums:
data.append({'name': album.name, 'year': album.year})
return JsonResponse(data, safe=False)````