сделал слаг для треков

This commit is contained in:
Mike0001-droid 2024-06-07 15:42:36 +05:00
parent 0b096603a0
commit 7e9d03842e
2 changed files with 26 additions and 1 deletions

View File

@ -1,5 +1,6 @@
from django.db import models
from account.models import MyUser
from django.template.defaultfilters import slugify
class Song(models.Model):
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)
genre = models.CharField('Жанр трека', blank=True, null=True, max_length=50)
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):
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)
user = models.ForeignKey(MyUser, verbose_name='Пользователь', on_delete=models.CASCADE, blank=True, null=True)
def __str__(self):
return f"{self.user.first_name} {self.user.last_name} - {self.song.title}"
return f"{self.user.email} - {self.song.title}"

View File

@ -17,6 +17,23 @@ class SongViewSet(ViewSet):
@action(detail=False, methods=['post'], schema=SongSchema())
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)
if serializer.is_valid():
serializer.save()
@ -31,6 +48,7 @@ class SongViewSet(ViewSet):
else:
return Response(serializer_1.errors, status=status.HTTP_400_BAD_REQUEST)
@action(detail=False, methods=['post'], schema=DeleteSongSchema())
def delete_song(self, request):
song_id = request.data['song_id']