СЕРИЛАЗАЦИЯ DRF
Я сериализую поле с именем "product" с помощью ProductSerializer() внутри OrderItemSerializer().
Это то, чего я хочу.
class OrderItemSerializer(serializers.ModelSerializer):
product = ProductSerializer()
class Meta:
model = models.OrderItem
fields = ('id','order', 'product', 'quantity')
Вывод:
Но когда я пытаюсь сделать запрос методом POST, необходимо отправить продукт как словарь, простого указания значения id недостаточно.
Как я могу выполнить 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