【DRF框架】序列化组件——字段验证
生活随笔
收集整理的這篇文章主要介紹了
【DRF框架】序列化组件——字段验证
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
單個(gè)字段的驗(yàn)證
1.在序列化器里定義校驗(yàn)字段的鉤子方法? ?validate_字段
2.獲取字段的數(shù)據(jù)
3.驗(yàn)證不通過,拋出異常??raise serializers.ValidationError("校驗(yàn)不通過的說明")
4.驗(yàn)證通過,直接返回字段數(shù)據(jù)
# 對(duì)title字段進(jìn)行驗(yàn)證 def validate_title(self,value):# 判斷value是否含有敏感字段if "xx" in value:# 存在敏感字段,拋出異常并附上自定義的原因raise serializers.ValidationError("該字段含有敏感詞")# 不存在,則直接返回return value?
多個(gè)字段的驗(yàn)證
1.在序列化器定義validate方法
2.attrs是所有數(shù)據(jù)組成的字典
3.不符合拋出異常?raise serializers.ValidationError("校驗(yàn)不通過的說明")
# 對(duì)多個(gè)字段進(jìn)行驗(yàn)證 def validate(self, attrs):# arrrs是數(shù)據(jù)組成的字典# 判斷l(xiāng)inux的數(shù)是否在linux分類if "linux" in attrs.get('title') and attrs['category_post'] == 2:return attrselse:raise serializers.ValidationError("圖書與分類不一致")?
自定義驗(yàn)證器
使用:在字段添加? ?validators=[自定義驗(yàn)證器,]
# 自定義驗(yàn)證器 def my_validate(value):if "xxx" in value:raise serializers.ValidationError("該字段包含敏感詞!!!")else:return value title = serializers.CharField(max_length=32,validators=[my_validate,]) # 使用自定義驗(yàn)證器?
三者的權(quán)重:
自定義驗(yàn)證器 >?單個(gè)字段的驗(yàn)證 >?多個(gè)字段的驗(yàn)證
?
轉(zhuǎn)載于:https://www.cnblogs.com/st-st/p/10123318.html
總結(jié)
以上是生活随笔為你收集整理的【DRF框架】序列化组件——字段验证的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。