Django Rest框架。序列化方法字段还是源?

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 是的,我知道与选择/预回迁相关的信息。 但最好是从数据库中提取必填字段并自动序列化,还是提取一些“原始”字段并将它们很好地连接到序列化程序中?提供了不同的验证选项。而第二个是非常可定制的,本身不提供

关于DRF序列化程序的问题。特别是ModelSerializer

有两种外键版本:

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

  • field=seraizermethodfield()
    get_字段(自身、obj):
    返回obj.user.name

  • 什么会更好/更快

    UPD

    是的,我知道与选择/预回迁相关的信息。
    但最好是从数据库中提取必填字段并自动序列化,还是提取一些“原始”字段并将它们很好地连接到序列化程序中?

    提供了不同的验证选项。而第二个是非常可定制的,本身不提供任何验证。

    它们之间没有区别。如果您想提高速度,您应该在视图中调用queryset的
    select\u related
    方法

    YourModel.objects.select_related('user')
    
    它将加入
    user
    表并调用
    user.name
    atribute下次不会访问数据库