django休息嵌套关系在post / put中 [英] django rest nested relation in post/put
问题描述
这是我的模型
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屋!