django在post / put中休息嵌套关系

时间:2013-06-17 11:28:26

标签: django django-models django-views django-rest-framework

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

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()

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

我在文档

中已经阅读过这篇文章
  

注意:嵌套序列化程序仅适用于只读   表示,因为有些情况下他们会有歧义或   更新实例时使用的非显而易见的行为。用于读写   表示你应该总是使用平面表示,使用   其中一个RelatedField子类。

请让我建议在django休息时进行嵌套关系发布/放置的正确方法或解决方案。

1 个答案:

答案 0 :(得分: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