python - put() 至少需要 3 个参数(给定 2 个)

标签 python django-rest-framework

这是我在 Views.py 中的代码

class NotificationsViewSet(viewsets.ModelViewSet):
    permission_classes = [permissions.IsAuthenticated, TokenHasReadWriteScope]
    queryset = Notifications.objects.all()
    serializer_class = NotificationsSerializer
    filter_fields = ('status','task','survey_type',)

    def put(self, request, pk, format=None):
        notifications = self.get_object(pk)
        serializer = NotificationsSerializer(notifications, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

    def delete(self, request, pk, format=None):
        notifications = self.get_object(pk)
        notifications.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)

当我尝试使用 PUT 方法时,出现错误 put() 至少需要 3 个参数(给定 2 个参数)。我的代码有什么问题吗?

最佳答案

def put(self, request, pk, format=None):

它至少需要 3 个参数。喜欢:

self.put(request, pk)

需要传递self变量。

或者,

put(self, request, pk)

或者最多 4 个参数,

self.put(request, pk, format)

关于python - put() 至少需要 3 个参数(给定 2 个),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44447877/

相关文章:

python - driver.page_source 使用 Selenium 仅返回元名称 ="ROBOTS"内容 ="NOINDEX, NOFOLLOW"

python - 从字符串中列出第一行和其他所有内容

python - 从 Pandas 的数据框中打印示例列集?

python - Scrapy:使用正则表达式跟踪链接

python - 将弹出窗口添加到 folium 中的 geojson 层

Django Rest Framework 将数据从序列化器保存到模型

python - 如何使用 django rest api 上传多个文件?

python - Django REST框架: Two models nested via a third one (with 2 FKs )

django - 注释在不存在的值上返回 null,我想将其转换为 null 为空字符串

django-rest-framework - 如何基于序列化器获取分页响应模式(drf-yasg)