СЕРИЛАЗАЦИЯ DRF

Я сериализую поле с именем "product" с помощью ProductSerializer() внутри OrderItemSerializer().

Это то, чего я хочу.

class OrderItemSerializer(serializers.ModelSerializer):
    product = ProductSerializer()

    class Meta:
        model = models.OrderItem
        fields = ('id','order', 'product', 'quantity')

Вывод:

Response of POST Method

Но когда я пытаюсь сделать запрос методом POST, необходимо отправить продукт как словарь, простого указания значения id недостаточно.

enter image description here

Как я могу выполнить POST, отправив только значение id?

Если вы поддерживаете записываемые вложенные представления, вам нужно написать методы .create() или .update(), которые обрабатывают сохранение нескольких объектов.

class UserSerializer(serializers.ModelSerializer):
    profile = ProfileSerializer()

    class Meta:
        model = User
        fields = ['username', 'email', 'profile']

    def create(self, validated_data):
        profile_data = validated_data.pop('profile')
        user = User.objects.create(**validated_data)
        Profile.objects.create(user=user, **profile_data)
        return user
Вернуться на верх