Вложенный ModelSerializer внутри Serializer: Ожидается словарь, но получен int
Получаем "Неверные данные. Ожидался словарь, но получен int." на сериализаторе модели. Как сериализовать модель внутри пользовательского serializers.Serializer
class UserAddressSerializer(serializers.ModelSerializer):
class Meta:
fields = "__all__"
model = UserAddress
class OrderDetailSerializer(serializers.Serializer):
address_id = UserAddressSerializer()
total_cost = serializers.FloatField()
...
class ServiceOrderDetailSerializer(serializers.Serializer):
service_name = serializers.CharField(max_length=100)
...
class PlaceOrderSerializer(serializers.Serializer):
order_detail = OrderDetailSerializer()
service_order = ServiceOrderDetailSerializer(many=True)
view.py:
serializer = PlaceOrderSerializer(data=request.data)
Request:
{
"order_detail": {
"address_id": 5,
"total_cost": 432,
"user_id": 2
},
"service_order": [
{
"service_name": "1212ser345",
...
...
Вышеприведенный код выдает Bad Request:
{
"data": {
"order_detail": {
"address_id": {
"non_field_errors": [
"Invalid data. Expected a dictionary, but got int."
]
}
}
}
}