gault-millau/apps/recipe/views/common.py
2019-09-19 14:55:50 +03:00

29 lines
823 B
Python

"""Recipe app common views."""
from rest_framework import generics, permissions
from recipe import models
from recipe.serializers import common as serializers
class RecipeViewMixin(generics.GenericAPIView):
"""Recipe view mixin."""
pagination_class = None
permission_classes = (permissions.AllowAny,)
def get_queryset(self):
user = self.request.user
qs = models.Recipe.objects.published().annotate_in_favorites(user)
return qs
class RecipeListView(RecipeViewMixin, generics.ListAPIView):
"""Resource for obtaining a list of recipes."""
serializer_class = serializers.RecipeListSerializer
class RecipeDetailView(RecipeViewMixin, generics.RetrieveAPIView):
"""Resource for detailed recipe information."""
serializer_class = serializers.RecipeDetailSerializer