1.导入
from rest_framework import serializers
field参数
1.read_only
read_only=True 表示不允许用户自己上传,只能用于api的输出,序列化的时候也不用对这个数据进行验证,序列化返回是有改字段
2.write_only
write_only=True 表示在更新或创建实例时可以使用该字段,但在序列化返回时不包括该字段。
3.required
required=True 反序列化(前端返回数据必须包含此字段)的时候必须提供这个字段 设置False 可以不提供
4.allow_null
allow_null=True 可以为null 设置False则不能为null
5.allow_blank
allow_blank=True 可以为空 设置False则不能为空
6.default
default 设置默认值
7.source
source='user.email'(user表的email字段的值给这值) 设置字段值 类似default 通常这个值有外键关联属性可以用source设置
8.validators
验证该字段跟 单独的validate很像
UniqueValidator 单独唯一
validators=[UniqueValidator(queryset=UserProfile.objects.all())
UniqueTogetherValidator: 多字段联合唯一,这个时候就不能单独作用于某个字段,我们在Meta中设置。
validators = [UniqueTogetherValidator(queryset=UserFav.objects.all(),fields=('user', 'course'),message='已经收藏')]
9.error_messages
错误消息提示
error_messages={
"min_value": "商品数量不能小于一",
"required": "请选择购买数量"
})
10.label
一个简单的文本字符串,用于HTML表单或者其他描述的元素中字段名称
11.help_text
一个文本字符串,可用作HTML表单字段或其他描述性元素中字段的描述。
12.style
键值对的字典,可用于控制渲染改字段
style={'input_type': 'password'}
13.max_length
最大长度
14.min_length
最小长度