Оптимизировать код, описав скрытый метод с передачей отличительный данных
Написал два метода: create_favorite и add_to_shopping_cart. Они очень похожи. Хочу улучшить, описав отдельный скрытый метод, куда передам отличительные данные (serializer)
@action(detail=True, methods=['post'],
permission_classes=[IsAuthenticated],
url_path='favorite')
def create_favorite(self, request, pk=None):
data = {'user': request.user.id, 'recipe': pk}
serializer = FavoriteSerializer(
data=data,
context={'request': request}
)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
@action(detail=True, methods=['post'],
permission_classes=[IsAuthenticated],
url_path='shopping_cart')
def add_to_shopping_cart(self, request, pk=None):
data = {'user': request.user.id, 'recipe': pk}
serializer = ShoppingCartSerializer(
data=data,
context={'request': request}
)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)