在Django Rest Framework Serializer中合并两个字段

Raf*_*Gil 6 django django-rest-framework

我正在使用Django Rest Framework身份验证系统,它带有一个默认的用户表.在该表中,它将在两个不同的字段中分割名字和姓氏.

是否可以在序列化器中加入这两个字段?像这样的东西:

class UserSerializer(serializers.ModelSerializer):
    full_name = serializers.CharField(source='user.first_name' + ' ' + 'user.last_name')
Run Code Online (Sandbox Code Playgroud)

这样我会得到以下回复:

{
    full_name: "firs_name last_name"
}
Run Code Online (Sandbox Code Playgroud)

Iva*_*kin 17

您可以在序列化程序中创建方法并按其显示 SerializerMethodField

class UserSerializer(serializers.ModelSerializer):
    full_name = serializers.SerializerMethodField()

    def get_full_name(self, obj):
        return '{} {}'.format(obj.first_name, obj.last_name) 
Run Code Online (Sandbox Code Playgroud)