【发布时间】:2021-05-05 20:50:48
【问题描述】:
我已经看过很多关于这个主题的问题,但似乎没有一个答案能解决我的问题。
我有以下 python 模块:
views.py:
class MyObjectViewSet(viewsets.ModelViewSet):
queryset = MyObject.objects.all()
serializer_class = MyObjectSerializer
permission_classes = [permissions.AllowAny] # For testing
@action(methods='POST', detail=True)
def my_request(self, request, *args, **kwargslf):
# Do stuff
urls.py:
router = routers.DefaultRouter()
router.register(r'myobject', views.MyObjectViewSet)
urlpatterns = [
path('', include(router.urls)),
path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
当我尝试向my_request-route 发出实际的POST-request 时,我得到Method POST not allowed。
但据我了解,ModelViewSet 应该允许所有方法。即使我在我看来包含http_method_names = ['get', 'post', 'patch', 'put', 'head', 'delete'],它仍然不起作用。
【问题讨论】:
-
您能否提供您请求的确切 API url。
标签: python django rest django-rest-framework django-views