美文网首页
Django REST framework:Serializer

Django REST framework:Serializer

作者: 安静的冰棒 | 来源:发表于2021-11-29 15:25 被阅读0次

    在定义Model时,我们通过models.<FieldName>获取了各种不同的字段,作为数据库中表的一个列。

    而在Serializer中,也需要通过serializers.<FieldName>的形式获取对应Model的字段,用来在JSON数据和Python数据类型之间进行转换,此外还可以根据Field中传入的属性进行校验、设置默认值。

    一、serializers.Field中的公共参数

    这里根据官方文档https://www.django-rest-framework.org/api-guide/fields/#serializer-fields总结了一些常用的公共参数:

    (1)read_only:设置为True时,用于在序列化输出时使用该字段,但在反序列化创建或更新实例时不使用该字段。

    (2)write_only:设置为True时,更新或创建实例时可以使用该字段,但在序列化输出时不显示该字段。

    (3)required:设置为False,表示在反序列化更新和创建时,该字段不是必须的。

    (4)default:反序列化时,为该字段设置一个默认值,同时包含关键字default和required是无效的,并且会引发错误。

    (5)allow_null:设置为True时,表示序列化输出时,允许None作为有效值。

    (6)allow_blank:设置为True时,表示在反序列化时,该字段的值可以为空。

    二、serializers的Field

    (1)布尔字段:BooleanField、NullBooleanField

    (2)字符串字段:CharField、EmailField

    (3)数字字段:IntegerField、FloatField、DecimalField

    (4)日期和时间字段:DateTimeField、DateField、TimeField、DurationField

    (5)文件上传字段:FileField、ImageField

    (6)隐藏字段:HiddenField表示不根据用户输入取值的字段类,而是从默认值或可调用值中取值

    (7)序列化方法字段:SerializerMethodField,通过调用序列化器类上的方法来获取它的值

    相关文章

      网友评论

          本文标题:Django REST framework:Serializer

          本文链接:https://www.haomeiwen.com/subject/owzkxrtx.html