From 2cc0614c1e327888efda096835fc5340e8dd0cba Mon Sep 17 00:00:00 2001 From: Viner Abubakirov Date: Tue, 6 Jan 2026 17:06:53 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D0=B5=D0=BB=D1=8C=20RecommendationPlaylist,?= =?UTF-8?q?=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20IndexView?= =?UTF-8?q?=20=D0=B8=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8=D0=BB=20=D0=B2?= =?UTF-8?q?=D0=B8=D0=B4=20=D0=B0=D0=B4=D0=BC=D0=B8=D0=BD=D0=BA=D0=B8=20Pla?= =?UTF-8?q?ylist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- music_storage/core/views.py | 4 ++-- music_storage/music/admin.py | 2 ++ ...2_alter_recommendationplaylist_playlist.py | 19 +++++++++++++++++++ music_storage/music/models.py | 2 +- music_storage/templates/index.html | 1 + 5 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 music_storage/music/migrations/0012_alter_recommendationplaylist_playlist.py diff --git a/music_storage/core/views.py b/music_storage/core/views.py index 01b4000..2693e62 100644 --- a/music_storage/core/views.py +++ b/music_storage/core/views.py @@ -11,9 +11,9 @@ class IndexView(View): if recommendation_playlist := RecommendationPlaylist.objects.filter( is_actual=True ).first(): - tracks = recommendation_playlist.tracks.all().select_related( + tracks = recommendation_playlist.playlist.tracks.all().select_related( "album", "album__artist" - )[:10] + ) else: tracks = [] return render(request, "index.html", {"tracks": tracks}) diff --git a/music_storage/music/admin.py b/music_storage/music/admin.py index c231990..683b901 100644 --- a/music_storage/music/admin.py +++ b/music_storage/music/admin.py @@ -91,6 +91,8 @@ class PlaylistAdmin(admin.ModelAdmin): search_fields = ("name",) list_filter = ("created_at",) + filter_horizontal = ("tracks",) + @admin.register(RecommendationPlaylist) class RecommendationPlaylistAdmin(admin.ModelAdmin): diff --git a/music_storage/music/migrations/0012_alter_recommendationplaylist_playlist.py b/music_storage/music/migrations/0012_alter_recommendationplaylist_playlist.py new file mode 100644 index 0000000..f4d7522 --- /dev/null +++ b/music_storage/music/migrations/0012_alter_recommendationplaylist_playlist.py @@ -0,0 +1,19 @@ +# Generated by Django 6.0 on 2026-01-06 12:04 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('music', '0011_playlist_recommendationplaylist'), + ] + + operations = [ + migrations.AlterField( + model_name='recommendationplaylist', + name='playlist', + field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='recommendations', to='music.playlist'), + ), + ] diff --git a/music_storage/music/models.py b/music_storage/music/models.py index fb8b666..673ef3d 100644 --- a/music_storage/music/models.py +++ b/music_storage/music/models.py @@ -101,7 +101,7 @@ class RecommendationPlaylist(BaseModel): name = models.CharField(max_length=200) description = models.TextField(blank=True) - playlist = models.ForeignKey( + playlist = models.OneToOneField( Playlist, on_delete=models.CASCADE, related_name="recommendations" ) is_actual = models.BooleanField(default=False) diff --git a/music_storage/templates/index.html b/music_storage/templates/index.html index 466f82a..765bfb7 100644 --- a/music_storage/templates/index.html +++ b/music_storage/templates/index.html @@ -6,4 +6,5 @@

Рекомендации:

{% include "components/track_list.html" with tracks=tracks %} +{% include "components/player.html" %} {% endblock %}