在 django-rest-framework 中使用 .to_representation() 和 .to_internal_value?

2024-02-29

What do .to_representation() and .to_internal_value do in serializers?
如果我将数据传递给序列化器,数据会被抛出吗to_representation() first?
这两个有什么用呢?


如果要创建自定义字段,则需要子类化 Field 然后覆盖其中一个或两个.to_representation() and .to_internal_value()方法。这两个方法用于转换 介于初始数据类型和原始可序列化数据类型之间。 原始数据类型通常是数字、字符串、 布尔值、日期/时间/日期时间或无。它们也可以是任何列表或 类似于字典的对象,仅包含其他原始对象。 可能支持其他类型,具体取决于您使用的渲染器 使用。

The .to_representation()调用方法来转换初始值 数据类型转换为原始的、可序列化的数据类型。

The to_internal_value()调用方法来恢复原语 数据类型转换为它的内部 python 表示形式。这个方法应该 如果数据无效,则引发 serializers.ValidationError 。

请注意,WritableField版本 2.x 中存在的类 否 不再存在。您应该子类化 Field 并覆盖to_internal_value()如果该字段支持数据输入。

Ref:

  1. http://www.django-rest-framework.org/api-guide/fields/#custom-fields http://www.django-rest-framework.org/api-guide/fields/#custom-fields
  2. https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/serializers.py#L417 https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/serializers.py#L417
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 django-rest-framework 中使用 .to_representation() 和 .to_internal_value? 的相关文章

随机推荐