【DRF框架】序列化組件——字段驗證


單個字段的驗證

1.在序列化器里定義校驗字段的鈎子方法   validate_字段

2.獲取字段的數據

3.驗證不通過,拋出異常  raise serializers.ValidationError("校驗不通過的說明")

4.驗證通過,直接返回字段數據

# 對title字段進行驗證
def validate_title(self,value): # 判斷value是否含有敏感字段
    if "xx" in value: # 存在敏感字段,拋出異常並附上自定義的原因
        raise serializers.ValidationError("該字段含有敏感詞") # 不存在,則直接返回
    return value

 

多個字段的驗證

1.在序列化器定義validate方法

2.attrs是所有數據組成的字典

3.不符合拋出異常 raise serializers.ValidationError("校驗不通過的說明")

# 對多個字段進行驗證
def validate(self, attrs): # arrrs是數據組成的字典

    # 判斷linux的數是否在linux分類
    if "linux" in attrs.get('title') and attrs['category_post'] == 2: return attrs else: raise serializers.ValidationError("圖書與分類不一致")

 

自定義驗證器

使用:在字段添加   validators=[自定義驗證器,]

# 自定義驗證器
def my_validate(value): if "xxx" in value: raise serializers.ValidationError("該字段包含敏感詞!!!") else: return value
title = serializers.CharField(max_length=32,validators=[my_validate,])             # 使用自定義驗證器

 

三者的權重:

自定義驗證器 > 單個字段的驗證 > 多個字段的驗證

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM