Untitled
unknown
plain_text
2 years ago
1.4 kB
9
Indexable
@atomic
def update(self, instance, validated_data):
"""Изменение рецепта автором."""
data = validated_data.copy()
# Проверяем, был ли указан ингредиент.
if 'ingredient' in data:
try:
RecipeIngredient.objects.get(recipe=instance,
ingredient=data['ingredient'])
# Если ингредиента не существует, возвращаем статус 400.
except RecipeIngredient.DoesNotExist:
return Response(
{'detail': 'Указанный ингредиент не существует'},
status=status.HTTP_400_BAD_REQUEST
)
instance.name = validated_data.get('name', instance.name)
instance.image = validated_data.get('image', instance.image)
instance.text = validated_data.get('text', instance.text)
instance.cooking_time = validated_data.get(
'cooking_time', instance.cooking_time
)
tags_data = validated_data.get('tags')
instance.tags.set(tags_data)
ingredients_data = validated_data.get('ingredients')
self.add_ingredients(ingredients_data, instance)
instance.save()
return instanceEditor is loading...