serializers.ModelSerializer 增加其它字段
时间: 2023-05-27 16:05:31 浏览: 98
django restframework serializer 增加自定义字段操作
可以通过继承 `ModelSerializer` 并添加额外的字段来增加其它字段。
例如,如果我们有一个 `Book` 模型和一个 `BookSerializer`,我们可以通过以下方式添加 `author` 字段:
```python
class BookSerializer(serializers.ModelSerializer):
author = serializers.SerializerMethodField()
class Meta:
model = Book
fields = ['title', 'published_date', 'author']
def get_author(self, obj):
return obj.author.name
```
在这个示例中,我们添加了一个名为 `author` 的字段,它使用 `get_author` 方法从 `Book` 模型中获取作者的名称并返回。然后将 `author` 添加到 `fields` 中,以便在序列化期间输出。
还可以使用 `serializers.Serializer` 类手动创建序列化器,并添加任意字段。例如:
```python
class BookSerializer(serializers.Serializer):
title = serializers.CharField()
published_date = serializers.DateField()
author = serializers.SerializerMethodField()
def get_author(self, obj):
return obj.author.name
```
在这个示例中,我们手动创建了一个 `BookSerializer`,并添加了 `title`、`published_date` 和 `author` 字段。我们还使用了 `SerializerMethodField` 来动态获取作者的名称。
阅读全文