6

我是 django rest api 开发的新手。我有两个模型,一个是类别,另一个是子类别。这是我的模型

class Category(models.Model):
    title = models.Charfield()
    brief = models.TextField()
    subcategories = model.ManyToManyField('Subcategory', blank=True)    

我的序列化程序类

class CategorySerializer(serializers.ModelSerializer):
    title= serializer.Charfield()
    subcategories = Relatedfield(many=True)

现在就在眼前

def post(self, request, format = None):
    data=request.DATA
    serialize= CategorySerializer(data=request.DATA)
    if serializer.valid():
        serializer.save()

如何像{'title':"test",'subscategories':[{'description':'bla bla bla'},{'description':'test test'}]}post 方法一样保存嵌套数据。

我在文档中读过这个

注意:嵌套序列化程序仅适用于只读表示,因为在某些情况下,如果在更新实例时使用它们会产生模棱两可或不明显的行为。对于读写表示,您应该始终通过使用相关字段子类之一来使用平面表示。

请让我建议在 django rest 中进行嵌套关系发布/放入的正确方法或解决方案。

4

1 回答 1

3

您是否尝试过创建一个SubCategorySerializer并将其添加为一个字段CategorySerializer

class SubcategorySerializer(serializers.ModelSerializer):
    class Meta:
        model = Subcategory

class CategorySerializer(serializers.ModelSerializer):
    subcategories = SubcategorySerializer(many=True)

文档:http ://django-rest-framework.org/api-guide/relations.html#nested-relationships

于 2013-07-24T18:38:14.777 回答