funkwhale/api/funkwhale_api/favorites/models.py

27 wiersze
803 B
Python
Czysty Zwykły widok Historia

from django.db import models
from django.utils import timezone
from funkwhale_api.music.models import Track
class TrackFavorite(models.Model):
creation_date = models.DateTimeField(default=timezone.now)
2017-12-15 23:36:06 +00:00
user = models.ForeignKey(
2018-06-09 13:36:16 +00:00
"users.User", related_name="track_favorites", on_delete=models.CASCADE
)
2017-12-15 23:36:06 +00:00
track = models.ForeignKey(
2018-06-09 13:36:16 +00:00
Track, related_name="track_favorites", on_delete=models.CASCADE
)
class Meta:
2018-06-09 13:36:16 +00:00
unique_together = ("track", "user")
ordering = ("-creation_date",)
@classmethod
def add(cls, track, user):
favorite, created = cls.objects.get_or_create(user=user, track=track)
return favorite
def get_activity_url(self):
2018-06-09 13:36:16 +00:00
return "{}/favorites/tracks/{}".format(self.user.get_activity_url(), self.pk)