Python Django:如何更改嵌套序列化程序中的字段名

Python Django:如何更改嵌套序列化程序中的字段名,python,django,django-rest-framework,Python,Django,Django Rest Framework,目前,我有一个序列化程序: class TokenSerializer(serializers.ModelSerializer): """ Serializer for Token model """ user = UserDataSerializer(many=False, read_only=True) class Meta: model = TokenModel

目前,我有一个序列化程序:

class TokenSerializer(serializers.ModelSerializer):
    """
    Serializer for Token model
    """
    user = UserDataSerializer(many=False, read_only=True)

    class Meta:
        model = TokenModel
        fields = ('key', 'user')
这是我得到的回应:

{
    "key": "d1de7dd82f2b987a6d9f35f1d033876e164f7132",
    "user": {
        "username": "peter258",
        "first_name": "Peter",
        "last_name": "Jones",
        "email": "peter.jones@gmail.com"
    }
}
我想更改响应,因此它不会说“user”,而是说“data”,但当我将序列化程序更改为类似的内容时,我只会在响应中得到“key”:

class TokenSerializer(serializers.ModelSerializer):
    """
    Serializer for Token model
    """
    data = UserDataSerializer(many=False, read_only=True)

    class Meta:
        model = TokenModel
        fields = ('key', 'data')

如何正确更改嵌套序列化程序中“用户”字段的名称?

您可以通过向
UserDataSerializer
提供
source
参数来实现这一点,该参数需要用于填充字段的属性的名称

class TokenSerializer(serializers.ModelSerializer):
    """
    Serializer for Token model
    """
    data = UserDataSerializer(many=False, read_only=True, source="user")

    class Meta:
        model = TokenModel
        fields = ('key', 'data')