Django Rest - 405 Метод DELETE не разрешен
Я использую Postman для тестирования конечных точек и у меня возникает ошибка DELETE method not allowed
. Однако создание и редактирование тех же самых данных работает.
Вот модель, о которой идет речь :
class Contributor(models.Model):
"""Model defining a contributor"""
user = models.ForeignKey(to=User, on_delete=models.CASCADE, blank=True, null=True)
project = models.ForeignKey(to=Project, related_name="project_contributor", on_delete=models.CASCADE, blank=True, null=True)
permission = models.CharField(max_length=16, choices=[(permission.name, permission.value) for permission in enums.ProjectPermission], default="ALL")
role = models.CharField(max_length=16, choices=[(role.name, role.value) for role in enums.ProjectRole], default="AUTHOR")
def __str__(self) -> str:
return f"Contributor: {str(self.user)}"
views.py :
class ContributorViewSet(viewsets.ModelViewSet):
serializer_class = ContributorSerializer
permission_classes = [IsAuthenticated]
def get_queryset(self):
"""return the contributors list of the project"""
return Contributor.objects.filter(project=self.kwargs.get('project_pk'))
def create(self, request, *args, **kwargs) -> Response:
"""
Add contributor to a project
If user added already in this project return 400
"""
project = Project.objects.get(pk=self.kwargs.get('project_pk'))
serializer = ContributorSerializer(data=request.data)
user = request.data['user']
if Contributor.objects.filter(user=user).filter(project=project).exists():
return Response('This user is already a contributor of this project', status=status.HTTP_400_BAD_REQUEST)
else:
if serializer.is_valid():
serializer.save(project=project)
return Response(serializer.data, status=status.HTTP_201_CREATED)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
и urls.py :
router = DefaultRouter()
router.register(r"projects", views.ProjectViewSet)
project_router = routers.NestedSimpleRouter(router, r"projects", lookup="project")
project_router.register(r"issues", views.IssueViewSet, basename="issues")
project_router.register(r'users', views.ContributorViewSet, basename='users')
issue_router = routers.NestedSimpleRouter(project_router, r"issues", lookup="issue")
issue_router.register(r"comments", views.CommentViewSet, basename="comments")
urlpatterns = [
path('admin/', admin.site.urls),
path('', include(router.urls)),
path('', include(project_router.urls)),
path('', include(issue_router.urls)),
path('signup/', RegisterView.as_view(), name='signup'),
path('login/', TokenObtainPairView.as_view(), name='obtain_tokens'),
path('login/refresh/', TokenRefreshView.as_view(), name='refresh_token'),
]
Я думал, что это из-за разрешений, которые я сделал, но я удалил их, и у меня все еще та же проблема.