【发布时间】:2016-09-28 16:30:09
【问题描述】:
构建一个查询集的正确方法是什么,我可以将它传递给 Django Rest Framework 序列化器,以便获取相关嵌套对象的数据/json 结果。
例如,我有两个模型:
class Topping(models.Model):
name = models.CharField(max_length=50)
class Pizza(models.Model):
name = models.CharField(max_length=50)
toppings = models.ManyToManyField(Topping)
还有我的序列化器:
class ToppingSerializer(serializers.Serializer):
name = serializers.CharField(required=True, max_length=50)
class PizzaSerializer(serializers.Serializer):
name = serializers.CharField(required=True, max_length=50)
toppings = ToppingSerializer(many=True, required=False)
然后我如何创建并传入一个查询集以获得类似这样的结果:
[
{
"name": "Hawaiian",
"toppings": [
{"name": "Pinapple"},
{"name": "Canadian Bacon"},
{"name": "Cheese"}
]
},
{
"name": "Pepperoni Pizza",
"toppings": [
{"name": "Pepperoni"},
{"name": "Cheese"}
]
},
{
"name": "Jamaican",
"toppings": [
{"name": "Chicken"},
{"name": "Jerk"},
{"name": "Cheese"}
]
}
]
请注意:
Django Rest 框架有一个很好的 example in their documentation 使用 ModelSerializer,但我需要这个功能而不使用 ModelSerializer,因为我的序列化需求将变得非常定制,超出了 DB 模型表示。
附加信息:
“Dealing with nested objects”的 Django Rest Framework 文档很有帮助,但我仍然不确定如何将正确的查询集传递给这样的“嵌套对象序列化器”。
如何创建“嵌套”查询集?
【问题讨论】:
标签: python json django django-rest-framework django-orm