Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何控制Django Rest框架中允许的方法?_Python_Django_Rest_Django Rest Framework_Django Views - Fatal编程技术网

Python 如何控制Django Rest框架中允许的方法?

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

我已经看到了很多关于这个话题的问题,但是没有一个答案能解决我的问题

我有以下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
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。