如何在序列化程序中添加字段?

时间:2015-12-07 09:04:39

标签: python django serialization django-rest-framework

以下是我的serializer.py文件:

from rest_framework import serializers

class TaskListSerializer(serializers.Serializer):
    id = serializers.CharField()
    user_id = serializers.CharField()
    status = serializers.CharField()
    name = serializers.CharField()

在Python shell中,我输入了这个:

>>> from serializer import TaskListSerializer as ts

>>> result = ts({'id':1, 'user_id': 1, 'status':2, 'name': 'bob'})

>>> result.data

{'status': u'2', 'user_id': u'1', 'id': u'1', 'name': u'bob'}  

现在我想要这样做:

首先,输入不变,也是{'id':1, 'user_id': 1, 'status':2, 'name': 'bob'}

但我想在field中添加name: bob并将jim更改为serializer.py,并按以下方式输出:

{'status': u'2', 'user_id': u'1', 'id': u'1', 'name': u'jim', u'age': '15'}

我如何在serializer.py中完成?

1 个答案:

答案 0 :(得分:0)

使用serializers.SerializerMethodField()

class TaskListSerializer(serializers.ModelSerializer):
complex_things = serializers.SerializerMethodField()

    def get_complex_things(self, obj):
        result_of_complex_things = 2 + 2
        return result_of_complex_things