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')