![](/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.