Form 类中的每个字段不仅负责验证数据,还应该负责“清理”-将其规范化为一致的格式。
---- Django 文档
序列化字段处理原始值和内部数据类型之间的转换。它们还处理验证输入值,以及从其母对象检索和设置值。
导入:from rest_framework import seriaalizers
使用:serializers.<FieldName>
有 serializers.Serializer 和 serializers.ModelSerializer,和 django 的 form 差不多
核心参数
每个序列化器字段类构造函数至少需要这些参数。 某些 Field 类需要附加的特定于字段的参数,但应始终接受以下内容:
-
read_only
只读字段被包含在API输出中,但是在创建或更新操作期间不应该包含在输入中。在序列化器输入中不正确包含的任何“只读”字段将被忽略。
只是接受,不会提交字段 例如 时间 字段 -
write_only
将其设置为 True,以确保在更新或创建实例时可用该字段,但在序列化时不会序列化此字段 -
required
必填字段 -
validators
验证字段的存在,简短的验证,例如唯一性验证,配合 UniqueValidator 等。 -
error_messages
错误信息 -
labellabel
一个短的文本字符串,可以用作HTML表单字段或其他描述元素的字段名。可用于 drf 的文档接口中友好描述 -
initial
一个值,应该用于预填充HTML表单字段的值。你可以通过一个可调用的方法,就像你可以使用任何常规的Django字段一样
import datetime
from rest_framework import serializers
class ExampleSerializer(serializers.Serializer):
day = serializers.DateField(initial=datetime.date.today)
-
style
控制浏览器如何渲染此字段,例如 'input_type' 和 'base_template'
核心字段
CharFieldEmailFieldRegexFieldURLField-
UUIDField
...... 还有很多,具体可以看文档
Validators
用于验证字段,大多数情况下都可以显示验证,定义函数 validate_<field_name>,有些情况下可能需要用到。