簡體   English   中英

Django Rest API-無法發出PUT或DELETE請求

[英]Django Rest API - Can't make a PUT or DELETE Request

我有django Rest API,想通過Flutter或Postman發出放置請求。 最終發生的事情是,當我發出放置請求時,它返回一個響應(看起來好像已更改,已打印出),但實際上它從未真正更改過。 這是我的代碼!

class UserProfileView(viewsets.ModelViewSet):
queryset = UserProfile.objects.all()
serializer_class = UserProfileSerializer

class AssignmentView(viewsets.ModelViewSet):
queryset = Assignment.objects.all()
serializer_class = AssignmentSerializer

filter_backends = (
    django_filters.rest_framework.DjangoFilterBackend,
    rest_framework.filters.OrderingFilter, 
)
filter_fields = ['studyplan']

class UserAssignmentView(AssignmentView):
http_method_names = ['get', 'post', 'put', 'delete']
def get_queryset(self):
    return Assignment.objects.filter(canview__user=self.request.user)

def put(self, request, format=None):
    return Response({'received data': request.data})

def delete(self, request, format=None):
    return Response({'received data': request.data})


class StudyplanView(viewsets.ModelViewSet):
queryset = Studyplan.objects.all()
serializer_class = StudyplanSerializer

class UserStudyplanView(StudyplanView):
def get_queryset(self):
    return Studyplan.objects.filter(canview__user=self.request.user)

問題是您同時覆蓋了putdelete方法,並且在其中不執行任何操作。 嘗試在其中調用super()方法:

class UserAssignmentView(AssignmentView):
    http_method_names = ['get', 'post', 'put', 'delete']
    def get_queryset(self):
        return Assignment.objects.filter(canview__user=self.request.user)

    def put(self, request, format=None):
        super().partial_update(request, format)
        return Response({'received data': request.data})

    def delete(self, request, format=None):
        super().destroy(request, format)
        return Response({'received data': request.data})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM