[英]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)
問題是您同時覆蓋了put
和delete
方法,並且在其中不執行任何操作。 嘗試在其中調用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.