Django Rest框架在ListField中验证子级

2024-04-26 21:38:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个DictField实例列表。 这是我的序列化程序.py在

class DetailSerializer(serializers.Serializer):
"""Serialize order"""
    id = serializers.IntegerField(read_only=True)
    order= serializers.IntegerField(min_value=1)

class OrderSerializer(serializers.ModelSerializer):
    orderlist = DetailSerializer(many=True)

现在我想对orderlist进行验证,比如确保这个列表中的每个订单都严格递增。我该怎么办?在


Tags: 实例py程序true列表序列化orderserialize
1条回答
网友
1楼 · 发布于 2024-04-26 21:38:32

您可以通过重写OrderSerializer中的validate方法来定义验证逻辑。官方文档对此做了很好的解释(阅读“对象级验证”):http://www.django-rest-framework.org/api-guide/serializers/#validation

在你的情况下,应该是这样的:

class OrderSerializer(serializers.ModelSerializer):
    orderlist = DetailSerializer(many=True)

    def validate(self, data):
        # custom validation logic here

然后为order serializer的实例调用is_valid()将使用自定义逻辑调用validate方法,并通知您任何错误。在

相关问题 更多 >