我正在使用django-rest-framework的genericAPIViews
我想从前端向后端发送一些数据,并根据发送的数据,Django应查询模型并将一些数据返回到前端。发送的数据是受保护的数据,因此无法附加到URL中,因此无法使用GET请求。我没有操纵数据库,只是查询它并返回响应(典型的GET用例)。
现在在DRF的genericAPIViews中,我无法找到执行此操作的视图:
从Tom Christie's GitHub page可以看出,只有2个视图有一个帖子处理程序:
可以看出,这两个视图都有post方法,可以在数据库中创建我不想要的条目。是否有内置的类可以完成我的工作,还是应该使用generics.GenericAPIView并编写自己的帖子处理程序?
目前我使用的是generic.View,它有帖子(self,request,* args,** kwargs)
答案 0 :(得分:0)
我认为你有几个选择可供选择。一种方法是使用ModelViewSet,它非常有用,因为它可以很好地处理视图,序列化器和模型之间的通信。 Here是django-rest-framework ModelViewSet文档的链接。
这些是它默认提供的操作(因为它继承自GenericAPIView):
.list(), .retrieve(), .create(), .update(), .partial_update(), .destroy().
如果您不想要所有这些,您可以通过执行以下操作来指定您想要的方法:
class ModelViewSet(views.ModelViewSet):
queryset = App.objects.all()
serializer_class = AppSerializer
http_method_names = ['get', 'post', 'head']
注意: http_method_names似乎是从Django> = 1.8开始的