【问题标题】:DJango REST Framework: add additional functionality to ModelViewSet create methodDJango REST Framework:向 ModelViewSet 创建方法添加附加功能
【发布时间】:2017-11-27 10:58:46
【问题描述】:

我正在尝试根据不同的主机请求向 django 服务器添加其他功能。

为此,我重写了 ModelViewSet 函数,并考虑在这些函数中添加功能。

我看到的是,当在 retrieve 和 list(GET 请求)上设置断点时,调试器停止了。但是,当尝试中断 create 或 update(POST 请求)时,调试器并没有中断。

如何解决?

还有一个细节(实际上是问题的答案),是我使用 admin 界面来执行 create 和 update(与我使用 REST 框架的 retrieve 和 list 不同)。

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

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

【问题讨论】:

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


    【解决方案1】:

    原因是 admin 接口没有使用 REST framework 来访问 Django Model。

    【讨论】:

      猜你喜欢
      • 2021-08-10
      • 2013-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多