我创建了一个DictField实例列表。 这是我的serializer.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)
现在我想对订单列表进行验证,例如确保此列表中的每个订单都是strict_increasing。我该怎么办?
答案 0 :(得分:0)
您可以通过覆盖validate
中的OrderSerializer
方法来定义验证逻辑。官方文档很好地解释了它(阅读“对象级验证”):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
调用is_valid()
订单序列化程序实例,然后使用您的自定义逻辑调用validate
方法,并通知您任何错误。