Python學習————序列化類
阿新 • • 發佈:2020-07-28
序列化類:
-Serializer
-寫欄位,欄位名要跟表的欄位對應,想不對應(source可以修改),有屬性,read_only,max_len...
-SerializerMethodField必須配套一個get_欄位名,返回什麼,前臺就看到什麼
-ModelSerializer
-class Meta:
表對應
取出的欄位(__all__,列表)
排除的欄位(用的很少)
extra_kwargs會給欄位的屬性
-重寫某個欄位 password=serializers.SerializerMethodField() def get_password(self,instance): return "***" -校驗:欄位自己的校驗,區域性鉤子,全域性鉤子 -只要序列化類的物件執行了is_valiad(),這些鉤子都會走,可以再鉤子裡寫邏輯 -在表模型(model)中寫方法,可以在上面取出的欄位中直接寫,不參與反序列化
-序列化多條(many=True):本質,ListSerializer內部套了一個個的serializer物件
-重寫ListSerializer,讓序列化物件和自己寫的ListSerializer對應上(瞭解)
-序列化類(instance,data,many,context={requtst:request})
-檢視函式中給序列化物件傳遞資料,使用context,傳回來,放進去直接使用序列化物件.context.get()