django序列化器(Serializers)Field字段解析

1.序列化字段类型

字段类型 解释说明 字段构造
BooleanField 布尔有效类型 BooleanField()
NullBooleanField 布尔有效类型,但同时也接受 None 类型 NullBooleanField()
CharField 文本字符串有效类型,可以检测验证字符串的长度是否符合 maxlength 和 mix_length 等配置 CharField(max_length=None, min_length=None, allow_blank=False, trim_whitespace=True)
EmailField 文本字符串有效类型,并验证文本是否符合邮件格式 EmailField(max_length=None, min_length=None, allow_blank=False)
RegexField 文本字符串有效类型,并验证字符串是否匹配强制参数 regex 所指定的正则表达式 RegexField(regex, max_length=None, min_length=None, allow_blank=False)
SlugField 文本字符串有效类型,并验证字符串是否匹配正则表达式:[a-zA-Z0-9-]+ SlugField(maxlength=50, min_length=None, allow_blank=False) 正则字段,验证正则模式 [a-zA-Z0-9-]+
URLField 文本字符串有效类型,并验证字符串是否符合 URL 规则:http:/// URLField(max_length=200, min_length=None, allow_blank=False)
UUIDField UUID字符串有效类型,指定 UUID 的表示类型 UUIDField(format=‘hex_verbose’) [‘hex_verbose’, ‘hex’, ‘int’,‘urn’ ]
FilePathField 文本字符串有效类型,选择仅限于文件系统上某个目录中的文件名 FilePathField(path=None[, match=None, recursive=False, max_length=100, **options])
IPAddressField 文本字符串有效类型,并确保输入为有效IPv4或IPv6字符串的字段 IPAddressField(protocol=‘both’, unpack_ipv4=False, **options)
IntegerField 整数数字有效类型 IntegerField(max_value=None, min_value=None)
FloatField 浮点数字有效类型 FloatField(max_value=None, min_value=None)
DecimalField 十进制有效类型 DecimalField(max_digits, decimal_places, coerce_to_string=None, max_value=None, min_value=None) [max_digits: 最多位数,decimal_palces: 小数点位置]
DateTimeField 日期和时间表示 DateTimeField(format=api_settings.DATETIME_FORMAT, input_formats=None)
DateField 日期表示 DateField(format=api_settings.DATE_FORMAT, input_formats=None)
TimeField 时间表示 TimeField(format=api_settings.TIME_FORMAT, input_formats=None)
DurationField 持续时间表示 DurationField()
ChoiceField 可以接受一组有限选择中的值的字段 ChoiceField(choices) choices与Django的用法相同
MultipleChoiceField 一个可以接受一组空、一个、多个值的字段 MultipleChoiceField(choices)
FileField 文件表示。执行 Django 的标准 FileField 验证 FileField(max_length=None, allow_empty_file=False, use_url=UPLOADED_FILES_USE_URL)
ImageField 图像表示。验证上传的文件内容是否与已知图像格式匹配 ImageField(max_length=None, allow_empty_file=False, use_url=UPLOADED_FILES_USE_URL)
ListField 验证对象列表的字段类 ListField(child=, min_length=None, max_length=None)
DictField 验证对象字典的字段类 DictField(child=)
HStoreField DictField 与 Django 的 postgres 兼容的预配置字典类型 HStoreField(child=)
JSONField 用于验证传入的数据结构是否包含有效的 JSON数据 JSONField(binary=True)
ReadOnlyField 仅返回该字段的值而无需修改 ReadOnlyField()
HiddenField 不基于用户输入获取值,而是从默认值或可调用对象获取其值 HiddenField()
ModelField 可以绑定到任意模型字段的通用字段 ModelField(model_field=)
SerializerMethodField 只读字段, 通过在附加的序列化器类上调用一个方法来获取值, 可以用于将任何类型的数据添加到对象的序列化表示中,要调用序列化器上的方法名称。如果不包含,则默认为 get_,参数引用的序列化器方法应该接受一个参数 (除了 self ),这是被序列化的对象。它应该返回您想要包含在对象的序列化表示中的任何内容 SerializerMethodField(method_name=None)

2.常用参数

关键字参 数参数作用说明
max_length 最大长度
min_lenght 最小长度
allow_blank 是否允许为空
trim_whitespace 是否截断空白字符
max_value 最大值
min_value 最小值
read_only 在更新或者创建资源的时候不应该包含的字段参数, 仅仅是只读数据的时候才需要反序列化, 默认 False
write_only 在更新或创建资源的时候需要包含该字段参数, 而读取数据内容的时候将不会反序列化, 默认 False
required 如果反序列化过程中未提供字段, 通常会引发错误, 设置该字段是否为必填对象, 默认 True
default 当提交对象中不包含该字段时, 使用自动填充的默认值, 在局部更新的时候将不适用allow_null声明字段是否可以为空, 默认 False
source 在对 ORM 字段重新声明新字段时, 需要将新字段指明对应的 ORM 字段
validators 验证器功能列表, 应将其应用于传入字段输入, 并且会引发 serializers.ValidationError 验证错误或返回验证数据
error_messages 验证错误时需要返回的错误信息字典
label 短文本字符串, 可用作 HTML 表单字段或其他描述性元素中的字段名称
help_text 可用作在 HTML 表单字段或其他描述性元素中对该字段进行描述的文本字符串
initial 该值应用于预先填充 HTML 表单字段的值
style 键值对字典, 可用于控制渲染器应如何渲染字段, HTML&Forms 文档

你可能感兴趣的:(django,python,后端)