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:///<path>URLField(max_length=200, min_length=None, allow_blank=False)
UUIDFieldUUID字符串有效类型,指定 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=)
HStoreFieldDictField 与 Django 的 postgres 兼容的预配置字典类型HStoreField(child=<A_FIELD_INSTANCE>)
JSONField用于验证传入的数据结构是否包含有效的 JSON数据JSONField(binary=True)
ReadOnlyField仅返回该字段的值而无需修改ReadOnlyField()
HiddenField不基于用户输入获取值,而是从默认值或可调用对象获取其值HiddenField()
ModelField可以绑定到任意模型字段的通用字段ModelField(model_field=)
SerializerMethodField只读字段, 通过在附加的序列化器类上调用一个方法来获取值, 可以用于将任何类型的数据添加到对象的序列化表示中,要调用序列化器上的方法名称。如果不包含,则默认为 get_<field_name>,参数引用的序列化器方法应该接受一个参数 (除了 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 文档
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值