Django Rest框架。序列化方法字段还是源?
关于DRF序列化程序的问题。特别是ModelSerializer 有两种外键版本:Django Rest框架。序列化方法字段还是源?,django,rest,optimization,serialization,django-rest-framework,Django,Rest,Optimization,Serialization,Django Rest Framework,关于DRF序列化程序的问题。特别是ModelSerializer 有两种外键版本: field=CharField(source='user.name') field=seraizermethodfield() get_字段(自身、obj): 返回obj.user.name 什么会更好/更快 UPD 是的,我知道与选择/预回迁相关的信息。 但最好是从数据库中提取必填字段并自动序列化,还是提取一些“原始”字段并将它们很好地连接到序列化程序中?提供了不同的验证选项。而第二个是非常可定制的,本身不提供
field=CharField(source='user.name')
field=seraizermethodfield()
get_字段(自身、obj):
返回obj.user.name
但最好是从数据库中提取必填字段并自动序列化,还是提取一些“原始”字段并将它们很好地连接到序列化程序中?提供了不同的验证选项。而第二个是非常可定制的,本身不提供任何验证。它们之间没有区别。如果您想提高速度,您应该在视图中调用queryset的
select\u related
方法
YourModel.objects.select_related('user')
它将加入user
表并调用user.name
atribute下次不会访问数据库