Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.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

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 方法“;邮政「;不准_Python_Django_Post_Django Rest Framework - Fatal编程技术网

Python 方法“;邮政「;不准

Python 方法“;邮政「;不准,python,django,post,django-rest-framework,Python,Django,Post,Django Rest Framework,我正在用Django REST框架开发REST API 我定义了自定义详细路线,如: from __future__ import absolute_import, division, print_function, unicode_literals class PermissionsMixin(object): @detail_route(methods=[u'get', u'post'], url_path='permissions') def detail_permiss

我正在用Django REST框架开发REST API

我定义了自定义详细路线,如:

from __future__ import absolute_import, division, print_function, unicode_literals

class PermissionsMixin(object):
    @detail_route(methods=[u'get', u'post'], url_path='permissions')
    def detail_permissions(self, request, pk=None):
        ...
我也尝试过
['get','post']
,但结果是一样的

和测试:

from __future__ import absolute_import, division, print_function, unicode_literals

class ProjectAPITestCase(APITestCase):

    def setUp(self):
        super(ProjectAPITestCase, self).setUp()

        self.factory = APIRequestFactory()

        self.detail_view = self.viewset.as_view({
            'get': 'retrieve',
            'put': 'update',
            'patch': 'partial_update',
            'delete': 'destroy',
        })

        self.resource_name = 'project'
        self.detail_permissions = lambda pk: reverse('api:{}-permissions'.format(self.resource_name),
                                                     kwargs={'pk': pk})


    def _detail_permissions(self, pk, data={}, user=None):
        request = self.factory.post(self.detail_permissions(pk), data=data, format='json')
        if user:
            force_authenticate(request, user)
        resp = self.detail_view(request, pk=pk)
        print(resp.data)
        resp.render()
        return resp

    def test_permissions(self):
        resp = self._detail_permissions(1, {}, self.user1)
        ...
当我运行测试时,
print
,然后呈现响应返回:

{u'detail': u'Method "POST" not allowed.'}
我将问题追溯到,其中
request.method.lower()
post
self.http\u方法名称
[u'get',u'post',u'put',u'patch',u'delete',u'head',u'options',u'trace']

我正在使用Python 2.7.9运行应用程序

我做错了什么?我怎样才能解决这个问题

谢谢

更改此代码(将post方法添加到类似的代码中)

更改此代码(将post方法添加到类似的代码中)

更改此代码(将post方法添加到类似的代码中)

更改此代码(将post方法添加到类似的代码中)


谢谢这解决了我的问题。要添加的正确内容是
'post':'detail\u permissions'
。有没有办法将更多功能链接到post请求(取决于url)?谢谢!这解决了我的问题。要添加的正确内容是
'post':'detail\u permissions'
。有没有办法将更多功能链接到post请求(取决于url)?谢谢!这解决了我的问题。要添加的正确内容是
'post':'detail\u permissions'
。有没有办法将更多功能链接到post请求(取决于url)?谢谢!这解决了我的问题。要添加的正确内容是
'post':'detail\u permissions'
。有没有办法将更多函数链接到post请求(取决于url)?
self.detail_view = self.viewset.as_view({
        'get': 'retrieve',
        'put': 'update',
        'patch': 'partial_update',
        'delete': 'destroy',
        'post': 'create'
    })