常用字段类型
字段 字段构造方式 BooleanField BooleanField() NullBooleanField NullBooleanField() CharField 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 RegexField(regex,max_length=None,min_length=None,allow_blank=False) SlugField SlugField(max_length=50,,min_length=None,allow_blank=False) URLField URLField(max_length=None,min_length=None,allow_blank=False) UUIDField UUIDField(format='hex_verbose') IPAddressField IPAddressField(protocol='both',unpack_ipv4=False,**options) IntegerField IntegerField(max_length=None,min_length=None) FloatField FloatField(max_length=None,min_length=None) DecimalFieldDecimalField(max_digits,decinal_places,coerce_to_string=None,max_length=None,min_length=None)
max_digits:最多位数; decinal_places:小数点位置
DateTimeField DateTimeField(format=api_settings.DATETIME_FORMAT,input_formats=None) DateField DateField(format=api_settings.DATETIME_FORMAT,input_formats=None) TimeField TimeField(format=api_settings.DATETIME_FORMAT,input_formats=None) DurationField DurationField() ChoiceField ChoiceField(choices) choices与Django的用法相同 MultipleChoiceField MultipleChoiceField(choices) FileField FileField(max_length=None,allow_empty_file=False,use_url=UPLOADED_FILES_URL) ImageField ImageField(max_length=None,allow_empty_file=False,use_url=UPLOADED_FILES_URL) ListField ListField(child=,max_length=None,min_length=None) DictField DictField(child=)选项参数
参数名称 作用 max_length 最大长度 min_length 最小长度 allow_blank 是否允许为空 trim_whitespace 是否截断空白字符 max_value 最大值 min_value 最大值通用参数
参数名称 说明 read_only 表明该字段仅用于序列化输出,默认为False write_only 表明该字段仅用于反序列化输入,默认为False required 表明该字段在反序列化时必须输入,默认为True default 反序列化时使用的默认值 allow_null 表明该字段是否允许传入None,默认False validators 该字段使用的验证器 error_message 包含错误编号与错误信息的字典 label 用于HTML展示API页面时,显示的字段名称 help_text 用于HTML展示API页面时,显示的字段帮助提示信息示例:(seralizers.py)
from rest_framework import serializers
class Student2Serializer(serializers.Serializer):
# 客户端字段 = serializers.字段类型(选项=选项值,)
id = serializers.IntegerField(read_only=True) # read_only=True,在客户端提交数据(反序列化阶段不会要求id字段)
name = serializers.CharField(required=True) # required=True,反序列化阶段必填
sex = serializers.BooleanField(default=True) # default=True,反序列化阶段,客户没有提交,则默认为True
age = serializers.IntegerField(max_value=100,min_value=0) # age在反序列化必须是0<=age<=100
description = serializers.CharField(allow_null=True,allow_blank=True) # 允许客户端不填写内容,或者值为""