我正在开发一个功能,我需要能够将一个由属性组成的列表发布到API。属性有name
、value
和{
many = True
添加到实例化序列化程序的位置,我在这里做的是:(由于某些原因,除非我在此处输入文本,否则代码不会格式化)
class PropertyViewSet(viewsets.ModelViewSet):
queryset = Property.objects.all()
serializer_class = PropertySerializer
所以我尝试做serializer = PropertySerializer(queryset, many=True)
,这破坏了API视图。因此,我想我必须为此创建一个新的序列化程序和视图(对吗)?但是如何确保我的API知道在正确的时间使用哪一个呢?在
如果有人能澄清这一点那就太好了,谢谢。在
ModelViewSet
类提供了一个create()
方法,该方法一次只允许创建一个对象。见docs如果要发布对象列表并将每个对象插入数据库,则必须创建一个自定义视图。例如
要在viewset旁边使用自定义apieview,只需将自定义apieview添加到viewset url不使用的其他url中,例如,如果viewset使用}
r'^myModel/$'
,那么对createlist自定义apieview使用{如果您需要创建对象,下面是我的操作方法:
然后,在您希望在just do中使用它的视图中:
^{pr2}$这已经是它了(确保在视图之前把mixin作为一个参数;就像我做的那样)。在
现在您的postrequest的正文如下所示:
最酷的是,通过这种方式,你也可以只发布一个像这样的对象:
我希望这有帮助!:)
相关问题 更多 >
编程相关推荐