В теле POST запроса передаю список id, уже существующих объектов. Как в ответе получить полные данные этих объектов?
class RecipePostSerializer(serializers.ModelSerializer):
author = CurrentUserProfileSerializer(read_only=True)
tags = serializers.PrimaryKeyRelatedField(queryset=Tags.objects.all(), many=True)
ingridients = AmountSerializer(many=True)
image = Base64ImageField()
class Meta:
model = Recipe
fields = ('id', 'name', 'author', 'image', 'text', 'tags', 'ingridients', 'cooking_time')
def create(self, validated_data):
ingridients = validated_data.pop('ingridients') # вырезаем ингридиенты
tags = validated_data.pop('tags') # вырезаем теги
recipe = Recipe.objects.create(**validated_data) # возвращаем модифицированный рецепт
for value in tags:
tags_id = value.id
recipe.tags.add(get_object_or_404(Tags, pk=tags_id))
return recipe
{
"name": "test",
"image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIA",
"author": {
"email": "test@test.com",
"username": "string",
"first_name": "string",
"last_name": "string"
},
"text": "test",
"tags": [
1
],
"ingridients": [
{
"id": 1,
"amount": 100
}
],
"cooking_time": 1
}
Response body
Download
{
"id": 43,
"name": "test",
"author": {
"email": "test@test.com",
"id": 1,
"username": "Soulafein",
"first_name": "",
"last_name": "",
"is_subscribed": false
},
"image": "http://127.0.0.1:8000/media/photos/2022/08/22/55896ab9-f57d-4b87-b14f-977188692b3e.jpeg",
"text": "test",
"tags": [
1
],
"ingridients": [],
"cooking_time": 1
}
{
"id": 43,
"ingridients": [],
"author": {
"email": "test@test.com",
"id": 1,
"username": "Soulafein",
"first_name": "",
"last_name": "",
"is_subscribed": false
},
"tags": [
{
"id": 1,
"name": "Завтрак",
"color": "#761352",
"slug": "breakfast"
}
],
"image": "http://127.0.0.1:8000/media/photos/2022/08/22/55896ab9-f57d-4b87-b14f-977188692b3e.jpeg",
"name": "test",
"text": "test",
"cooking_time": 1,
"is_favorited": false,
"is_in_shopping_cart": false
},
1-й скрин это мой код, 2-й и 3-й это то что я передаю/получаю, а 4-й это тот рзультат который мне нужен.
Всем спасибо.