diff --git a/cookbook/serializer.py b/cookbook/serializer.py index f6ebf49a6..7a4adda36 100644 --- a/cookbook/serializer.py +++ b/cookbook/serializer.py @@ -627,7 +627,11 @@ class IngredientSimpleSerializer(WritableNestedModelSerializer): nutritions = serializers.SerializerMethodField('get_nutritions') def get_used_in_recipes(self, obj): - return list(Recipe.objects.filter(steps__ingredients=obj.id).values('id', 'name')) + used_in = [] + for s in obj.step_set.all(): + for r in s.recipe_set.all(): + used_in.append({'id':r.id,'name':r.name}) + return used_in def get_conversions(self, obj): conversions = [] diff --git a/cookbook/views/api.py b/cookbook/views/api.py index 913689fa5..de9e439fd 100644 --- a/cookbook/views/api.py +++ b/cookbook/views/api.py @@ -797,7 +797,10 @@ class RecipeViewSet(viewsets.ModelViewSet): if self.detail: # if detail request and not list, private condition is verified by permission class if not share: # filter for space only if not shared self.queryset = self.queryset.filter(space=self.request.space).prefetch_related('steps', 'keywords', - 'shared', 'steps__ingredients', + 'shared', + 'steps__ingredients', + 'steps__ingredients__step_set', + 'steps__ingredients__step_set__recipe_set', 'steps__ingredients__food', 'steps__ingredients__food__inherit_fields', 'steps__ingredients__food__supermarket_category',