django-restful serializers fields学习总结 一、

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的时候使用。

 

 

 

猜你喜欢

转载自blog.csdn.net/weixin_41068851/article/details/81807356