drf框架序列化器報錯處理

2021-10-09 20:04:08 字數 1609 閱讀 8793

在drf框架中,我們很多的資料檢驗都是在序列化器中完成的,但是序列化器報錯的資訊就會很奇怪,所以我們最好是使用自己封裝的序列化器來對報錯資訊進行封裝,我是這樣處理的

未處理之前:

}

處理之後:

處理的**

class

shiyanview

(genericapiview)

:"""實驗"""

permission_classes =

[isauthenticated, adminuserpermission]

defpost

(self, request,

*args,

**kwargs)

: data = request.data

serializer = shiyanserializer(data=data)

ifnot serializer.is_valid():

# #

# print

('-----------------------'

)print

(serializer.errors)

# 對提示進行封裝

message =

str(serializer.errors)

start_string = message.find(

'string'

) end_string = message.find(

'code'

) a = message[start_string+

8:end_string-3]

print

(a)return apiresponse.fail(message=a)

return apiresponse.success(message=

"充值成功"

)

class

shiyanserializer

(serializers.serializer)

: username = serializers.charfield(label=

'使用者名稱'

, required=

true

, min_length=

6, max_length=10)

password = serializers.integerfield(label=

'密碼'

, required=

false

)def

validate

(self, attrs)

: username = attrs[

'username'

] password = attrs[

'password']if

notisinstance

(password,

int)

:raise serializers.validationerror(

)return attrs

drf 序列化器

序列化器 和 django中 的 form 和 modelform 有類似的地方 因為 在 drf 中,沒有模板的概念,所以 序列化的主要作用 是對響應的資料做序列化的,還可以對 接收到的資料做序列化 serializer 序列化 查詢的結果queryset user.objects.all ser...

drf 序列化器

models.pyclass chargepolicydetail models.model purpose c models.apartment.purpose category c models.apartment.category name models.charfield max lengt...

drf之序列化器

1.drf框架定義的序列化流程 1.狹義上的序列化定義 資料流向 後端到前段 後端負責處理資料處理流程 模型類物件 字典 json字串 drf約定的序列化流程 1.通過django模型類獲取資料庫資料構建模型類物件 2.把模型類物件轉化為字典 3.把字典轉化為json格式的字串 2.drf框架的反序...