1 from __future__
import unicode_literals
3 from django
.db
import models
4 from django
.conf
import settings
6 from mygpo
.core
.models
import UpdateInfoModel
7 from mygpo
.podcasts
.models
import Episode
10 class FavoriteEpisode(UpdateInfoModel
):
12 # the user that has a favorite episode
13 user
= models
.ForeignKey(settings
.AUTH_USER_MODEL
,
14 on_delete
=models
.CASCADE
)
16 # episode that is the user's favorite
17 episode
= models
.ForeignKey(Episode
, db_index
=True,
18 on_delete
=models
.PROTECT
)
26 def episodes_for_user(cls
, user
):
27 """ Favorite episodes of the given user
29 Returns the episodes directly, not the FavoriteEpisode objects """
30 return Episode
.objects
.filter(favoriteepisode__user
=user
)\
31 .select_related('podcast')\
32 .prefetch_related('slugs', 'podcast__slugs')