core arguements
read_only:
只读,只能包含在response中,如果输入的字段中有read_only属性的都将被忽略。
write_only:
只写,在序列化输入的时候需要,输出的时候不需要。
required:
在进行序列化的时候,默认的所有字段的require属性值为True,如果没有给值就会报错 ,如果仅需要其中几个,可以将字段的required设置为False,或者在进行序列化的时候,添加参数partial = True
default:
设置默认值,在没有显式的给出字段值的时候,会使用默认的值。如果设置default = True,在没有给值得时候会设置为null
source:
用来设置字段的值,一般有三种,一、一个self的方法,例如:source= “get_absolute_url”二、用点分制来便利属性,source= “user.email”,如果返回的值为空,则需要设置一个default.三、source= “*“,表示将整个对象传递到该字段,
validators
值应该是用来验证这个字段的验证器的列表,
error_messages:
错误消息显示的字典
label:
HTML字段的名称
help_text:
HTML字段的描述
initial:
HTML表单的预填充值
style:
是一个字典,用来渲染HTML字段的:例如style = {'input_type':'password'}
布尔字段:
BooleanField:
默认使用required=False,如果需要更改,需要显式的声明,
NullBooleanField:
接受None的布尔字段
字符串字段:
CharField:
可选属性:max_length、min_length、allow_blank(如果设置为True,则将空字符串视为有效值,否则会引发验证错误)、trim_whitespace(如果设置为True,则会去除字符串开头的和结尾的空格)、allow_null(不建议将allow_null和allow_blank同时使用(但是也可以),因为会导致有两个空字符串的默认值,在有的情况下会发生错误),相比于Django model中的 null = True 和blank = True,null 是针对数据库的,而blank是针对表单字段的,都可以为空值。
EmailField:
验证邮箱用的,是一个字符串类型的。对应与django model 中的EmailField
RegexField:
对传进来的文本进行正则匹配,对应于Django model的RegexField,例如RegexField(regex,max_length = None,..),其中的regex可以是一个字符转,也可以是Python的正则表达式对象。
SlugField:
一个RegexField,对应的regex 是 [a-zA-z0-9_-]+
URLField:
一个RegexField,用来验证传入的URL是否合法。
UUIDField:
确保输入的字符串是有效的UUID字符串,该to_internal_value方法将会返回一个uuid.UUID实例,例如UUIDField(format = 'hex_verbose'),format代表UUID的值得表示格式,值可以为:hex_verbose,hex,int,urn
FilePathField:
用来传入文件系统中的某一个目录名,属性介绍:path,文件的绝对路径,math,一个字符串的正则表达式,用来过滤文件名,recursive(bool),用来代表是否包括path中的所有子目录,allow_files,是否包括指定目录的文件(默认是TRUE),allow_folders,是否包括指定位置的文件夹(默认是False)
IPAddressField:
确保输入的ip地址是有效的,属性介绍:protocol,默认值为both,即IPV4和IPV6都可以接受,unpack_ipv4解包IPv4映射地址(不是很明白什么意思),默认是False,只能在protocol为both的时候使用。