исправил запросы на создание плейлистов
This commit is contained in:
parent
a99228f5c6
commit
533128e1f3
|
|
@ -86,8 +86,8 @@ class MyUserViewSet(ViewSet):
|
||||||
if check_password(request.data['password'], password):
|
if check_password(request.data['password'], password):
|
||||||
return Response(
|
return Response(
|
||||||
{'detail': 'Пароли одинаковые', 'error': {'email': 'Пароли одинаковые'}},
|
{'detail': 'Пароли одинаковые', 'error': {'email': 'Пароли одинаковые'}},
|
||||||
|
|
||||||
status=status.HTTP_400_BAD_REQUEST)
|
status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
if 'email' in request.data:
|
if 'email' in request.data:
|
||||||
del request.data['email']
|
del request.data['email']
|
||||||
if 'password' in request.data:
|
if 'password' in request.data:
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ class FavoriteSong(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class PlayList(models.Model):
|
class PlayList(models.Model):
|
||||||
name = models.CharField('Название плейлиста', max_length=50)
|
name = models.CharField('Название плейлиста', max_length=50, blank=True, null=True)
|
||||||
song = models.ManyToManyField(Song, blank=True, null=True)
|
song = models.ManyToManyField(Song, blank=True, null=True)
|
||||||
user = models.ForeignKey(MyUser, verbose_name='Пользователь', on_delete=models.CASCADE)
|
user = models.ForeignKey(MyUser, verbose_name='Пользователь', on_delete=models.CASCADE)
|
||||||
art = models.ImageField('Изображение плейлиста', blank=True, null=True, upload_to="playlist_images/")
|
art = models.ImageField('Изображение плейлиста', blank=True, null=True, upload_to="playlist_images/")
|
||||||
|
|
|
||||||
|
|
@ -34,12 +34,29 @@ class PlayListViewSet(GenericViewSet):
|
||||||
|
|
||||||
@action(detail=False, methods=['post'], schema=PlayListSchema())
|
@action(detail=False, methods=['post'], schema=PlayListSchema())
|
||||||
def create_playlist(self, request):
|
def create_playlist(self, request):
|
||||||
data = request.data
|
if request.data['name']:
|
||||||
data.update(user=request.user.pk)
|
try:
|
||||||
serializer = PlayListSerializer(data=request.data)
|
instance = PlayList.objects.get(pk=request.data['playlist_id'], user=request.user.pk)
|
||||||
serializer.is_valid(raise_exception=True)
|
data = request.data
|
||||||
serializer.save()
|
data.update(user=request.user.pk)
|
||||||
return Response(serializer.data)
|
serializer = self.get_serializer(data=request.data, instance=instance)
|
||||||
|
serializer.is_valid(raise_exception=True)
|
||||||
|
serializer.save()
|
||||||
|
return Response(serializer.data)
|
||||||
|
except ObjectDoesNotExist:
|
||||||
|
return Response(
|
||||||
|
{'detail': 'Объекта не существует', 'error': {'PlayList': 'Объекта не существует'}},
|
||||||
|
status=status.HTTP_404_NOT_FOUND)
|
||||||
|
else:
|
||||||
|
playlist_pk = self.get_queryset().objects.filter(user=request.user.pk)
|
||||||
|
number_playlist = len(playlist_pk) + 1
|
||||||
|
name = f"Плейлист № {number_playlist}"
|
||||||
|
data = request.data
|
||||||
|
data.update(user=request.user.pk, name=name)
|
||||||
|
serializer = self.get_serializer(data=request.data)
|
||||||
|
serializer.is_valid(raise_exception=True)
|
||||||
|
serializer.save()
|
||||||
|
return Response(serializer.data)
|
||||||
|
|
||||||
@action(detail=False, methods=['post'], schema=PlayListSchema())
|
@action(detail=False, methods=['post'], schema=PlayListSchema())
|
||||||
def delete_playlist(self, request):
|
def delete_playlist(self, request):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue