我試圖在Django REST框架中設置嵌套序列化,但在遵循文檔中的簡短指南http://www.django-rest-framework.org/api-guide/relations/#nested-relationships之後,我在序列化數據中有沒有變化。Django REST框架嵌套序列化沒有效果
models.py
class Franchise(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=255)
class Item(models.Model):
id = models.AutoField(primary_key=True)
franchise = models.ForeignKey(Franchise, on_delete=None)
title = models.CharField(max_length=255)
初始 serializers.py
class ItemListSerializer(serializers.ModelSerializer):
class Meta:
model = Item
fields = ('id', 'franchise', 'title')
class FranshiseDetailSerializer(serializers.ModelSerializer):
class Meta:
model = Franchise
fields = ('id', 'name', 'items')
當我查詢ItemListSerializer
與查詢集我找回預期:
[
{
"id": 1,
"franchise": 1,
"title": "Item 1",
},
{
"id": 2,
"franchise": 1,
"title": "Item 2"
},
{
"id": 3,
"franchise": 2,
"title": "Item 3",
}
]
和預計結果時,我查詢FranchiseDetailSerializer
與預先存在的特許經營對象。
{
"id": 1,
"name": "Franchise 1"
}
現在,當我改變FranchiseDetailSerializer
,按嵌套關係DRF指南:
class FranshiseDetailSerializer(serializers.ModelSerializer):
items = ItemListSerializer(many=True, read_only=True)
class Meta:
model = Franchise
fields = ('id', 'name', 'items')
我期望得到以下結果:
{
"id": 1,
"name": "Franchise 1"
"items": [
{"id": 1, "title": "Item 1", "franchise": 1},
{"id": 2, "title": "Item 2", "franchise": 1}
]
}
但是,相反,我得到沒有變化,好像我根本沒有更新FranchiseDetailSerializer
:
{
"id": 1,
"name": "Franchise 1"
}
這個對我來說,最糟糕的是,我不得到任何類型的錯誤,我根本沒有看到結果。
任何和所有的幫助表示讚賞,謝謝。
太棒了,工作,非常感謝:) – 99lives