From e7cc0315884c0506595d3d728b1777064ab3a2eb Mon Sep 17 00:00:00 2001 From: Mark Hoekveen Date: Thu, 22 May 2025 22:53:39 +0200 Subject: [PATCH] Supports profile updates only background for now, but hey. --- playlist/serializers/__init__.py | 10 +++++----- playlist/serializers/profile.py | 6 ++++++ playlist/views/api/profile.py | 10 +++++++++- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/playlist/serializers/__init__.py b/playlist/serializers/__init__.py index 0edf028..4299cf2 100644 --- a/playlist/serializers/__init__.py +++ b/playlist/serializers/__init__.py @@ -1,6 +1,6 @@ -from .track import TrackSerializer -from .artist import ArtistSerializer -from .user import UserSerializer -from .album import AlbumSerializer -from .profile import ProfileSerializer, BackgroundSerializer +from .track import * +from .artist import * +from .user import * +from .album import * +from .profile import * from .vote import * diff --git a/playlist/serializers/profile.py b/playlist/serializers/profile.py index 892481b..aa58ac8 100644 --- a/playlist/serializers/profile.py +++ b/playlist/serializers/profile.py @@ -12,3 +12,9 @@ class ProfileSerializer(serializers.ModelSerializer): class Meta: model = Profile fields = '__all__' + +class ProfileUpdateSerializer(serializers.ModelSerializer): + background = serializers.PrimaryKeyRelatedField(many=False, queryset=Background.objects.all()) + class Meta: + model = Profile + fields = ['background'] diff --git a/playlist/views/api/profile.py b/playlist/views/api/profile.py index 6aa6175..5238958 100644 --- a/playlist/views/api/profile.py +++ b/playlist/views/api/profile.py @@ -2,7 +2,7 @@ from pickle import BUILD from playlist import serializers from rest_framework.views import APIView from rest_framework.response import Response -from playlist.serializers import ProfileSerializer, BackgroundSerializer +from playlist.serializers import ProfileSerializer, ProfileUpdateSerializer, BackgroundSerializer from playlist.models import Profile, Background class ProfileDetailView(APIView): @@ -11,6 +11,14 @@ class ProfileDetailView(APIView): serializer = ProfileSerializer(profile) return Response(serializer.data) + def put(self, request, id): + profile = Profile.objects.get(pk=id) + serializer = ProfileUpdateSerializer(profile, data=request.data) + serializer.is_valid() + serializer.save() + return Response(serializer.data) + #return Response() + class BackgroundListView(APIView): def get(self, request): backgrounds = Background.objects.all()