相关疑难解决方法(0)

django-rest-framework 3.0在嵌套的序列化程序中创建或更新

使用django-rest-framework 3.0并拥有以下简单模型:

class Book(models.Model):
    title = models.CharField(max_length=50)


class Page(models.Model):
    book = models.ForeignKey(Books, related_name='related_book')
    text = models.CharField(max_length=500)
Run Code Online (Sandbox Code Playgroud)

并且给出了这个JSON请求:

{
   "book_id":1,
   "pages":[
      {
         "page_id":2,
         "text":"loremipsum"
      },
      {
         "page_id":4,
         "text":"loremipsum"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

如何编写嵌套的序列化程序来处理此JSON,并为page给定的每个JSON book创建新页面或更新(如果存在).

class RequestSerializer(serializers.Serializer):
    book_id = serializers.IntegerField()
    page = PageSerializer(many=True)


class PageSerializer(serializers.ModelSerializer):
    class Meta:
        model = Page
Run Code Online (Sandbox Code Playgroud)

我知道用一个实例化序列化器instance会更新当前的序列化器,但我应该如何在create嵌套序列化器的方法中使用它?

python django serialization json django-rest-framework

71
推荐指数
1
解决办法
3万
查看次数