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