Python 如何控制Django Rest框架中允许的方法?
我已经看到了很多关于这个话题的问题,但是没有一个答案能解决我的问题 我有以下python模块: views.py:Python 如何控制Django Rest框架中允许的方法?,python,django,rest,django-rest-framework,django-views,Python,Django,Rest,Django Rest Framework,Django Views,我已经看到了很多关于这个话题的问题,但是没有一个答案能解决我的问题 我有以下python模块: views.py: class MyObjectViewSet(viewsets.ModelViewSet): queryset = MyObject.objects.all() serializer_class = MyObjectSerializer permission_classes = [permissions.AllowAny] # For testing
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
URL.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'))
]
当我尝试向我的请求
-路由发出实际的POST
-请求时,我得到了方法POST不允许
但据我所知,
ModelViewSet
应该允许所有方法。即使在我的视图中包含http\u method\u names=['get','post','patch','put','head','delete']
,它仍然不起作用。methods
的参数应该是一个方法列表,如下所示:
@action(methods=['POST'], detail=True)
def my_request(self, request, *args, **kwargs):
# Do stuff
您能否提供您请求的确切API url。