而不是长篇解释,一些代码:
我的主序列化程序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)
我可以这样发布数据:
{
"offers": []
}
这对DRF有效,但我想检查至少有一个要约,例如:
{
"offers": [{"id": 1, "quantity": 200}]
}
如何确保至少有一个优惠?
谢谢
答案 0 :(得分:1)
class OrderSerializer(serializers.Serializer):
def validate_offers(self, attrs):
if len(attrs) == 0:
raise serializers.ValidationError('at least one offer required')
return attrs
答案 1 :(得分:0)
使用Manger oder您的serzializer模型,例如:
if (mySerializerModel.objects.all()[0] != None):
# some code
pass
还有其他可能性来检查这一点。我认为您的经理甚至可以使用count()
方法。
if (mySerializerModel.objects.all().count() > 0):
# some code
pass
如果你知道id,还有mySerializerModel.objects.get(<id>)
。可能还有其他可能性来检查。只需查看django queryset documentation。