Django Rest Framework.序列化程序方法字段或源



关于 DRF 序列化程序的问题。尤其是模型序列化程序。

有两个带有外键的版本:

  1. field = CharField(source='user.name')

  2. field = SeriaizerMethodField() get_field(self, obj): return obj.user.name

什么会更好/更快?

UPD

是的,我知道选择/prefetch_related。但是,从数据库中提取必填字段并自动序列化它更好,还是拉取一些"原始"字段并将它们很好地连接到序列化程序中更好?

它们之间没有区别。如果要提高速度,则应通过调用查询集的方法在视图中执行此操作select_related

YourModel.objects.select_related('user')

它将加入user表,下次调用user.name致敬不会进入数据库

第一个从框中提供不同的验证选项。虽然第二个是非常可定制的,并且本身不提供任何验证。

最新更新