django休息嵌套关系在post / put中 [英] django rest nested relation in post/put

查看:145
本文介绍了django休息嵌套关系在post / put中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在django休息api发展中是新的。我有两个模型,一个是类别,另一个是子类别。
这是我的模型

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

我的序列化器类

  class CategorySerializer(serializers.ModelSerializer):
title = serializer.Charfield()
子类别=相关域(许多= True)

/ p>

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

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



我已经在文档中阅读了



表示,因为在更新实例时使用的情况下,它们会有歧义或
不明显的行为。对于read-write
表示,您应该始终使用一个平面表示,通过使用
一个RelatedField子类。


请让我建议哪个是正确的方式或解决方案来进行django休息的嵌套关系。

解决方案

尝试创建一个 SubCategorySerializer 并将其添加到 CategorySerializer 中的字段

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

class CategorySerializer(serializers.ModelSerializer) :
子类别=子类别串行器(许多=真)

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


I am new in django rest api developement. I have two models one is category and another is subcategories. Here is my models

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

My serializer class

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

Now in view

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

How to save nested data like {'title':"test",'subscategories':[{'description':'bla bla bla'},{'description':'test test'}]} in post method.

I have read this in documentation

Note: Nested serializers are only suitable for read-only representations, as there are cases where they would have ambiguous or non-obvious behavior if used when updating instances. For read-write representations you should always use a flat representation, by using one of the RelatedField subclasses.

Please let me suggest which is right way or solution to do nested relation post/put in django rest.

解决方案

Have you tried creating a SubCategorySerializer and adding this as a field on CategorySerializer?

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

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

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

这篇关于django休息嵌套关系在post / put中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆