drf序列化器欄位說明

2022-10-04 02:48:09 字數 1376 閱讀 9395

read_only:字段唯讀,預設值為false。唯讀欄位只會包含序列化輸出中,建立修改物件不會包含該欄位

write_only:欄位只寫,預設值為false 和 read_only 相反,序列化時不包含,建立修改物件必須包含該欄位

required:字段必須,預設是true 必須欄位在建立修改物件時必須包含,否則丟擲異常。當設定為false時,在建立修改物件可以不用包含該欄位

default:預設值。如果乙個字段設定了預設值,那麼在反序列時,如果沒有提供該子彈,則使用預設進行填充,在進行區域性更新時,default 不會應用,因為區域性更新時,只有更新的字段會被校驗和返回。還可以設定乙個函式或者乙個可呼叫物件。

可以設定為乙個函式或其他可呼叫物件,會使用呼叫後的結果填充。呼叫時,它不接受任何引數,如果可呼叫物件有乙個requires_context = true屬性,那麼序列化欄位會被當做引數傳入

class currentuserdefault:

requires_context = true

def __call__(self, serializer_field):

return serializer_field.context['request'].user

allow_null:如果將none傳遞給序列化器欄位,將引發錯誤。如果none應該被認為是乙個有效值,則將該關鍵字引數設定為true 注意:將該引數設定為ture將意味著序列化輸出的預設值是none,但並不意味著輸入反序列化是預設的。預設值是false

source:將用於填充欄位的屬性的名稱。可以是乙個接受self引數的方法(source='方法名')也可以是屬性(source='channel.name')

validators :應該應用到輸入欄位的驗證器函式的列表,要麼引發驗證錯誤,要麼簡單的返回。驗證器函式通常應該引發serializers.validationerror django內建的 validationerror也被支援,以便於django或者第三方django包中定義的驗證器相容

error_messages :錯誤資訊字典

label:乙個文字字串。可以用作html表單字段或其他描述元素的欄位名

help_text:可以在html表單子彈活其他描述元素中用作字段描述的文字字串

charfield:文字字段,可以驗證文字 小於max_length 大於 min_length

regexfield:文字字段,可以驗證文字是否匹配給定正規表示式

intergerfield:整數字段,可以驗證文字 小於max_value 大於 min_value

floatfield:浮點數字段,可以驗證文字 小於max_value 大於 min_value

decimalfield:以十進位制表示python中由decimal的例項

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框架的反序...