0
点赞
收藏
分享

微信扫一扫

Django RESTFramework 序列化字段类型和参数表

莞尔小迷糊 2022-04-25 阅读 89

常用字段类型

字段 字段构造方式 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) DecimalField

DecimalField(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)  # 允许客户端不填写内容,或者值为""

 

举报

相关推荐

0 条评论