Django 处理嵌套对象的序列化程序
使用下面的序列化程序。我想将(嵌套的)相关对象(ProductCatSerializer)添加到ProductSerializer。我试过以下方法Django 处理嵌套对象的序列化程序,django,django-rest-framework,Django,Django Rest Framework,使用下面的序列化程序。我想将(嵌套的)相关对象(ProductCatSerializer)添加到ProductSerializer。我试过以下方法 class ProductCatSerializer(serializers.ModelSerializer): class Meta: model = ProductCat fields = ('id', 'title') class ProductSerializer(serializers.ModelS
class ProductCatSerializer(serializers.ModelSerializer):
class Meta:
model = ProductCat
fields = ('id', 'title')
class ProductSerializer(serializers.ModelSerializer):
"""
Serializing the Product instances into representations.
"""
ProductCat = ProductCatSerializer()
class Meta:
model = Product
fields = ('id', 'title', 'description', 'price',)
所以我想做的是,产品显示结果中嵌套的相关类别
多谢各位
更新:
使用depth=2选项(感谢Nandeep Mali),我现在可以得到嵌套的值,但它们只使用ID显示,而不像json请求的其余部分那样使用keyparis(参见下面的类别)。几乎是对的
"results": [
{
"id": 1,
"title": "test ",
"description": "test",
"price": "2.99",
"product_url": "222",
"product_ref": "222",
"active": true,
"created": "2013-02-15T15:49:28Z",
"modified": "2013-02-17T13:05:28Z",
"category": [
1,
2
],
您的示例几乎是正确的,只是您应该调用字段“productcat”(或者调用模型relationshipt的任何名称,但不使用CamelCase),并将其添加到字段中
class ProductCatSerializer(serializers.ModelSerializer):
class Meta:
model = ProductCat
fields = ('id', 'title')
class ProductSerializer(serializers.ModelSerializer):
"""
Serializing the Product instances into representations.
"""
productcat = ProductCatSerializer()
class Meta:
model = Product
fields = ('id', 'title', 'description', 'price', 'productcat')
ProductCatSerializer
中的模型不应该是其他的吗?顺便说一句,你的名字和这个问题是一致的。你试过这个吗?抱歉,键入示例时出错,dow!更正。名字是lol:)@Nandeep Mali我正试着这样做哦是的。不太熟悉这个框架。不过,它们确实有嵌套支持:您遇到的问题是什么?你用过depth=1
设置吗?太好了,我在学习,慢慢地,但是在学习!再次感谢你,汤姆。“产品猫”将是一个对象。如果我们需要添加'productcat'元素作为普通字段名以及'title','description'