serializers.ModelSerializer 返所用字段 ,再增加一个其它字段
时间: 2023-05-27 22:05:32 浏览: 41
要返回指定字段,可以在serializer中使用fields属性来指定要包含的字段。比如:
```python
class MySerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = ('field1', 'field2', 'field3')
```
这样就只会返回model中的field1、field2和field3字段。
如果要增加一个其它字段,可以在serializer中定义一个新的字段,然后在to_representation()方法中,将该字段添加到序列化结果中。比如:
```python
class MySerializer(serializers.ModelSerializer):
new_field = serializers.SerializerMethodField()
class Meta:
model = MyModel
fields = ('field1', 'field2', 'field3', 'new_field')
def get_new_field(self, obj):
# 在这里获取新的字段值
return "new value"
def to_representation(self, instance):
data = super().to_representation(instance)
data['new_field'] = self.get_new_field(instance)
return data
```
这样就会在序列化结果中增加一个名为new_field的字段,并且该字段的值为get_new_field()方法返回的值。