исправил запросы на создание плейлистов
This commit is contained in:
parent
a99228f5c6
commit
533128e1f3
|
|
@ -86,8 +86,8 @@ class MyUserViewSet(ViewSet):
|
|||
if check_password(request.data['password'], password):
|
||||
return Response(
|
||||
{'detail': 'Пароли одинаковые', 'error': {'email': 'Пароли одинаковые'}},
|
||||
|
||||
status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
if 'email' in request.data:
|
||||
del request.data['email']
|
||||
if 'password' in request.data:
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ class FavoriteSong(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)
|
||||
user = models.ForeignKey(MyUser, verbose_name='Пользователь', on_delete=models.CASCADE)
|
||||
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())
|
||||
def create_playlist(self, request):
|
||||
data = request.data
|
||||
data.update(user=request.user.pk)
|
||||
serializer = PlayListSerializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
serializer.save()
|
||||
return Response(serializer.data)
|
||||
if request.data['name']:
|
||||
try:
|
||||
instance = PlayList.objects.get(pk=request.data['playlist_id'], user=request.user.pk)
|
||||
data = request.data
|
||||
data.update(user=request.user.pk)
|
||||
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())
|
||||
def delete_playlist(self, request):
|
||||
|
|
|
|||
Loading…
Reference in New Issue