![](/img/trans.png)
[英]django rest framework: How to validate a rule in serializers using a related field
[英]How to validate a field with uppercase with django serializers
我正在编写 API,并且在调试时注意到以下错误。 以下代码不验证状态字段
class DocumentSalesforceSerializer(serializers.Serializer):
AccountId = serializers.CharField(required=True)
ContactId = serializers.CharField(required=True)
Status = serializers.CharField(required=True)
StartDate = serializers.CharField(required=True)
EndDate = serializers.CharField(required=True, allow_blank=True)
Subject = serializers.CharField(required=True)
def validate_status(self, Status):
if Status not in ("New", "In Progress", "On Hold", "Completed", "Closed", "Cannot Complete", "Canceled"):
raise serializers.ValidationError("Invalid Status")
return Status
但是,当我像这样将“状态”一词更改为“状态”时:
class DocumentSalesforceSerializer(serializers.Serializer):
AccountId = serializers.CharField(required=True)
ContactId = serializers.CharField(required=True)
status = serializers.CharField(required=True)
StartDate = serializers.CharField(required=True)
EndDate = serializers.CharField(required=True, allow_blank=True)
Subject = serializers.CharField(required=True)
def validate_status(self, status):
if status not in ("New", "In Progress", "On Hold", "Completed", "Closed", "Cannot Complete", "Canceled"):
raise serializers.ValidationError("Invalid Status")
return status
一切正常。 谁能告诉我为什么它会这样工作,我该如何验证“状态”大写字段? 谢谢
以下代码不验证状态字段。
据预计,验证名为validate_ S tatus
,所以用一个大写的S
,以及:
class DocumentSalesforceSerializer(serializers.Serializer):
AccountId = serializers.CharField(required=True)
ContactId = serializers.CharField(required=True)
Status = serializers.CharField(required=True)
StartDate = serializers.CharField(required=True)
EndDate = serializers.CharField(required=True, allow_blank=True)
Subject = serializers.CharField(required=True)
def validate_Status(self, Status):
if Status not in ("New", "In Progress", "On Hold", "Completed", "Closed", "Cannot Complete", "Canceled"):
raise serializers.ValidationError("Invalid Status")
return Status
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.