сделал слаг для треков
This commit is contained in:
parent
0b096603a0
commit
7e9d03842e
|
|
@ -1,5 +1,6 @@
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from account.models import MyUser
|
from account.models import MyUser
|
||||||
|
from django.template.defaultfilters import slugify
|
||||||
|
|
||||||
class Song(models.Model):
|
class Song(models.Model):
|
||||||
azura_id = models.CharField('ID трека с Азуры', max_length=255)
|
azura_id = models.CharField('ID трека с Азуры', max_length=255)
|
||||||
|
|
@ -8,6 +9,12 @@ class Song(models.Model):
|
||||||
album = models.CharField('Альбом трека', blank=True, null=True, max_length=255)
|
album = models.CharField('Альбом трека', blank=True, null=True, max_length=255)
|
||||||
genre = models.CharField('Жанр трека', blank=True, null=True, max_length=50)
|
genre = models.CharField('Жанр трека', blank=True, null=True, max_length=50)
|
||||||
art = models.CharField('Изображение трека', blank=True, null=True, max_length=255)
|
art = models.CharField('Изображение трека', blank=True, null=True, max_length=255)
|
||||||
|
slug = models.SlugField()
|
||||||
|
|
||||||
|
def save(self, *args, **kwargs):
|
||||||
|
if not self.id:
|
||||||
|
self.slug = slugify(self.azura_id)
|
||||||
|
super(Song, self).save(*args, **kwargs)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.artist} - {self.title}"
|
return f"{self.artist} - {self.title}"
|
||||||
|
|
@ -16,4 +23,4 @@ class FavoriteSong(models.Model):
|
||||||
song = models.ForeignKey(Song, verbose_name='Трек', on_delete=models.CASCADE, null=True, blank=True)
|
song = models.ForeignKey(Song, verbose_name='Трек', on_delete=models.CASCADE, null=True, blank=True)
|
||||||
user = models.ForeignKey(MyUser, verbose_name='Пользователь', on_delete=models.CASCADE, blank=True, null=True)
|
user = models.ForeignKey(MyUser, verbose_name='Пользователь', on_delete=models.CASCADE, blank=True, null=True)
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.user.first_name} {self.user.last_name} - {self.song.title}"
|
return f"{self.user.email} - {self.song.title}"
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,23 @@ class SongViewSet(ViewSet):
|
||||||
|
|
||||||
@action(detail=False, methods=['post'], schema=SongSchema())
|
@action(detail=False, methods=['post'], schema=SongSchema())
|
||||||
def create_song(self, request):
|
def create_song(self, request):
|
||||||
|
|
||||||
|
""" song = Song.objects.filter(
|
||||||
|
azura_id = request.data['azura_id'],
|
||||||
|
title = request.data['title'],
|
||||||
|
artist = request.data['artist'],
|
||||||
|
album = request.data['album'],
|
||||||
|
genre = request.data['genre'],
|
||||||
|
art = request.data['art']
|
||||||
|
)
|
||||||
|
|
||||||
|
if song.exists():
|
||||||
|
data = {
|
||||||
|
"song": serializer.data['id'],
|
||||||
|
"user": request.user.pk
|
||||||
|
} """
|
||||||
|
|
||||||
|
|
||||||
serializer = SongSerializer(data=request.data)
|
serializer = SongSerializer(data=request.data)
|
||||||
if serializer.is_valid():
|
if serializer.is_valid():
|
||||||
serializer.save()
|
serializer.save()
|
||||||
|
|
@ -31,6 +48,7 @@ class SongViewSet(ViewSet):
|
||||||
else:
|
else:
|
||||||
return Response(serializer_1.errors, status=status.HTTP_400_BAD_REQUEST)
|
return Response(serializer_1.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
|
||||||
@action(detail=False, methods=['post'], schema=DeleteSongSchema())
|
@action(detail=False, methods=['post'], schema=DeleteSongSchema())
|
||||||
def delete_song(self, request):
|
def delete_song(self, request):
|
||||||
song_id = request.data['song_id']
|
song_id = request.data['song_id']
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue