Python 如何在序列化程序中添加字段?
下面是我的Python 如何在序列化程序中添加字段?,python,django,serialization,django-rest-framework,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.CharFie
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'}
但是我想在serializer.py
中添加一个字段
并将名称:bob
更改为jim
,并按如下方式输出:
{'status':u'2','user_id':u'1','id':u'1','name':u'jim',u'age':'15'}
如何在
serializer.py
中执行此操作?使用serializers.SerializerMethodField()
为什么不在
TaskListSerializer
类中添加一个新字段呢?事实上,我会做很多复杂的事情,因为我不能像你那样做,那么你想在序列化程序中添加字段,而不是在序列化程序类中?你认为那很干净吗?
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