27 lines
1.3 KiB
Python
27 lines
1.3 KiB
Python
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)
|
||
title = models.CharField('Название трека', max_length=255)
|
||
artist = models.CharField('Исполнитель', max_length=255)
|
||
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('Слаг трека', blank=True, null=True)
|
||
|
||
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}"
|
||
|
||
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.email} - {self.song.title}"
|