Почему значения глубины в сериализаторе Meta class не работают? - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть сериализатор

serializer.py

class VendorManagementUpdateSerializer(serializers.ModelSerializer):
    ...
    parent = serializers.PrimaryKeyRelatedField(queryset=Vendors.objects.all(), required=False, allow_null=True)
    ...

    class Meta:
        model = Vendors
        fields = (...,
                  ....,
                  'parent',

                  )
        depth = 1

class VendorToFrontSerializer(serializers.ModelSerializer):
    class Meta:
        model = Vendors
        fields = ('pk', 'vendor_name')

Но данные ответа после запроса PUT возвращают только поля id. И мне нужно получить все поля из сериализатора VendorToFrontSerializer ('pk', 'vendor_name') Разве это не то, для чего используется глубина?

Я знаю, что могу используйте этот тип сериализатора

parent = VendorToFrontSerializer()

Но проблема в том, что я использую part_update, и когда я отправляю это поле в запрос PUT

{
   "parent":123
 }

, я получаю

{
    "parent": {
        "non_field_errors": [
            "Invalid data. Expected a dictionary, but got int."
        ]
    }
}

Как мне правильно это сделать?

...