Nut*_*uts 4 python django python-3.x django-rest-framework
我有两个相同型号的序列化器。我想嵌套它们。
不幸的是,这种方法不起作用:
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = ['name', 'word_count']
class BetterBookSerializer(serializers.ModelSerializer):
book = BookSerializer(many=False)
class Meta:
model = Book
fields = ('id', 'book')
Run Code Online (Sandbox Code Playgroud)
预期结果:
{
"id": 123,
"book": {
"name": "book_name",
"word_count": 123
}
}
Run Code Online (Sandbox Code Playgroud)
使用source=*代替many=True作为
class BetterBookSerializer(serializers.ModelSerializer):
book = BookSerializer(source='*')
class Meta:
model = Book
fields = ('id', 'book')Run Code Online (Sandbox Code Playgroud)
从文档中,
该值
source='*'具有特殊含义,用于指示应将整个对象传递到该字段。这对于创建嵌套表示或需要访问完整对象以确定输出表示的字段非常有用。
| 归档时间: |
|
| 查看次数: |
579 次 |
| 最近记录: |