为什么在 Django REST 框架中检索单个资源会多次执行 serializer.to_representation()?
Why does retrieving a single resource execute serializer.to_representation() multiple times in Django REST framework?
假设我有一个名为 Thingy 的模型,我的数据库中有 20 个 Thingies。当我检索所有 Thingies 时,serializer.to_represenatation() 被执行了 20 次。这个不错。
但是,当我从 /api/thingies/1 中检索到一个 Thingy 时,我发现 serializer.to_representation() 被执行了四 (4!!!) 次。
为什么会发生这种情况,我怎样才能只调用一次 to_representation() 就可以逃脱?
那是因为您使用的是可浏览的API。
JSON 渲染器只会调用一次。
可浏览 API 需要多次调用:
- 对于结果本身
- 当您可以通过 PUT 修改资源时的原始数据选项卡
- 当您可以通过 PATCH 修改资源时,用于原始数据选项卡
- 对于 HTML 表单选项卡
假设我有一个名为 Thingy 的模型,我的数据库中有 20 个 Thingies。当我检索所有 Thingies 时,serializer.to_represenatation() 被执行了 20 次。这个不错。
但是,当我从 /api/thingies/1 中检索到一个 Thingy 时,我发现 serializer.to_representation() 被执行了四 (4!!!) 次。
为什么会发生这种情况,我怎样才能只调用一次 to_representation() 就可以逃脱?
那是因为您使用的是可浏览的API。 JSON 渲染器只会调用一次。
可浏览 API 需要多次调用:
- 对于结果本身
- 当您可以通过 PUT 修改资源时的原始数据选项卡
- 当您可以通过 PATCH 修改资源时,用于原始数据选项卡
- 对于 HTML 表单选项卡