Add in_favorites into models
This commit is contained in:
parent
b23a79775d
commit
2cb4d22a94
|
|
@ -13,6 +13,20 @@ class RecipeQuerySet(models.QuerySet):
|
||||||
return self.filter(state__in=[self.model.PUBLISHED,
|
return self.filter(state__in=[self.model.PUBLISHED,
|
||||||
self.model.PUBLISHED_EXCLUSIVE])
|
self.model.PUBLISHED_EXCLUSIVE])
|
||||||
|
|
||||||
|
def annotate_in_favorites(self, user):
|
||||||
|
"""Annotate flag in_favorites"""
|
||||||
|
favorite_establishments = []
|
||||||
|
if user.is_authenticated:
|
||||||
|
favorite_establishments = user.favorites.by_content_type(app_label='recipe',
|
||||||
|
model='recipe') \
|
||||||
|
.values_list('object_id', flat=True)
|
||||||
|
return self.annotate(in_favorites=models.Case(
|
||||||
|
models.When(
|
||||||
|
id__in=favorite_establishments,
|
||||||
|
then=True),
|
||||||
|
default=False,
|
||||||
|
output_field=models.BooleanField(default=False)))
|
||||||
|
|
||||||
|
|
||||||
class Recipe(TranslatedFieldsMixin, ImageMixin, BaseAttributes):
|
class Recipe(TranslatedFieldsMixin, ImageMixin, BaseAttributes):
|
||||||
"""Recipe model."""
|
"""Recipe model."""
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user