DJango REST Framework:为ModelViewSet创建方法

时间:2017-11-27 10:58:46

标签: python django rest override django-rest-viewsets

我正在尝试在不同的主机请求中添加django服务器的附加功能。

为了做到这一点,我重写了ModelViewSet函数,以便在这些函数中添加功能。

我看到的是,在检索列表(GET请求)上设置断点时,调试器已停止。但是当试图打破创建更新(POST请求)时,调试器并没有中断。

如何解决这个问题?

另一个细节(实际上是问题的答案)是,我使用 admin 界面执行创建更新(与我使用REST框架的检索列表不同)。

class GraphViewSet(ModelViewSet):
    queryset = Graph.objects.all()
    serializer_class = GraphSerializer

    def create(self, request, *args, **kwargs):
        response = super(ModelViewSet, self).create(request, args, kwargs)
        return response

    def retrieve(self, request, *args, **kwargs):
        response = super(ModelViewSet, self).retrieve(request, args, kwargs)
        return response

    def update(self, request, *args, **kwargs):
        response = super(ModelViewSet, self).update(request, args, kwargs)
        return response

    def partial_update(self, request, *args, **kwargs):
        response = super(ModelViewSet, self).partial_update(request, args, kwargs)
        return response

    def destroy(self, request, *args, **kwargs):
        response = super(ModelViewSet, self).destroy(request, args, kwargs)
        return response

    def list(self, request, *args, **kwargs):
        response = super(ModelViewSet, self).list(request, args, kwargs)
        return response

    def post(self, request, *args, **kwargs):
        response = super(ModelViewSet, self).post(request, args, kwargs)
        return response

Python 3.6.3 Django 1.11.7 djangorestframework 9.0.1

还要了解在服务器端向不同客户端请求添加功能的任何其他可能解决方案。

1 个答案:

答案 0 :(得分:0)

原因是 admin 接口没有使用REST框架来访问Django模型。