Tho*_*hom 5 django serialization django-rest-framework
一些代码而不是长解释:
我的主序列化器OrderSerializer
和嵌套序列化器OffersSerializer
:
class OffersSerializer(serializers.Serializer):
id = serializers.IntegerField(min_value=0)
quantity = serializers.IntegerField(min_value=0)
class OrderSerializer(serializers.Serializer):
offers = OffersSerializer(many=True, required=True)
Run Code Online (Sandbox Code Playgroud)
这样我就可以像这样发布数据:
{
"offers": []
}
Run Code Online (Sandbox Code Playgroud)
这对于 DRF 有效,但我想检查是否至少有一个报价,例如:
{
"offers": [{"id": 1, "quantity": 200}]
}
Run Code Online (Sandbox Code Playgroud)
如何确保至少有一份报价?
谢谢
class OrderSerializer(serializers.Serializer):
def validate_offers(self, attrs):
if len(attrs) == 0:
raise serializers.ValidationError('at least one offer required')
return attrs
Run Code Online (Sandbox Code Playgroud)