Fixed #20478 – Added support for HTTP PATCH method in generic views.
This commit is contained in:
parent
0e51d8eb66
commit
ee8b810b97
|
@ -30,7 +30,7 @@ class View(object):
|
||||||
dispatch-by-method and simple sanity checking.
|
dispatch-by-method and simple sanity checking.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
http_method_names = ['get', 'post', 'put', 'delete', 'head', 'options', 'trace']
|
http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
@ -206,3 +206,6 @@ class RedirectView(View):
|
||||||
|
|
||||||
def put(self, request, *args, **kwargs):
|
def put(self, request, *args, **kwargs):
|
||||||
return self.get(request, *args, **kwargs)
|
return self.get(request, *args, **kwargs)
|
||||||
|
|
||||||
|
def patch(self, request, *args, **kwargs):
|
||||||
|
return self.get(request, *args, **kwargs)
|
||||||
|
|
|
@ -55,7 +55,7 @@ View
|
||||||
|
|
||||||
Default::
|
Default::
|
||||||
|
|
||||||
['get', 'post', 'put', 'delete', 'head', 'options', 'trace']
|
['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']
|
||||||
|
|
||||||
**Methods**
|
**Methods**
|
||||||
|
|
||||||
|
|
|
@ -258,6 +258,9 @@ Minor features
|
||||||
methods returning the first or last object matching the filters. Returns
|
methods returning the first or last object matching the filters. Returns
|
||||||
``None`` if there are no objects matching.
|
``None`` if there are no objects matching.
|
||||||
|
|
||||||
|
* :class:`~django.views.generic.base.View` and
|
||||||
|
:class:`~django.views.generic.base.RedirectView` now support HTTP PATCH method.
|
||||||
|
|
||||||
Backwards incompatible changes in 1.6
|
Backwards incompatible changes in 1.6
|
||||||
=====================================
|
=====================================
|
||||||
|
|
||||||
|
|
|
@ -384,6 +384,12 @@ class RedirectViewTest(unittest.TestCase):
|
||||||
self.assertEqual(response.status_code, 301)
|
self.assertEqual(response.status_code, 301)
|
||||||
self.assertEqual(response.url, '/bar/')
|
self.assertEqual(response.url, '/bar/')
|
||||||
|
|
||||||
|
def test_redirect_PATCH(self):
|
||||||
|
"Default is a permanent redirect"
|
||||||
|
response = RedirectView.as_view(url='/bar/')(self.rf.patch('/foo/'))
|
||||||
|
self.assertEqual(response.status_code, 301)
|
||||||
|
self.assertEqual(response.url, '/bar/')
|
||||||
|
|
||||||
def test_redirect_DELETE(self):
|
def test_redirect_DELETE(self):
|
||||||
"Default is a permanent redirect"
|
"Default is a permanent redirect"
|
||||||
response = RedirectView.as_view(url='/bar/')(self.rf.delete('/foo/'))
|
response = RedirectView.as_view(url='/bar/')(self.rf.delete('/foo/'))
|
||||||
|
|
Loading…
Reference in New Issue