Loading django/views/generic/base.py +3 −3 Original line number Diff line number Diff line Loading @@ -62,6 +62,9 @@ class View(object): self = cls(**initkwargs) if hasattr(self, 'get') and not hasattr(self, 'head'): self.head = self.get self.request = request self.args = args self.kwargs = kwargs return self.dispatch(request, *args, **kwargs) # take name and docstring from class Loading @@ -80,9 +83,6 @@ class View(object): handler = getattr(self, request.method.lower(), self.http_method_not_allowed) else: handler = self.http_method_not_allowed self.request = request self.args = args self.kwargs = kwargs return handler(request, *args, **kwargs) def http_method_not_allowed(self, request, *args, **kwargs): Loading tests/regressiontests/generic_views/base.py +11 −0 Original line number Diff line number Diff line Loading @@ -216,6 +216,17 @@ class ViewTest(unittest.TestCase): response_allows = set(response['Allow'].split(', ')) self.assertEqual(set(expected_methods + ('OPTIONS',)), response_allows) def test_args_kwargs_request_on_self(self): """ Test a view only has args, kwargs & request once `as_view` has been called. """ bare_view = InstanceView() view = InstanceView.as_view()(self.rf.get('/')) for attribute in ('args', 'kwargs', 'request'): self.assertNotIn(attribute, dir(bare_view)) self.assertIn(attribute, dir(view)) class TemplateViewTest(TestCase): urls = 'regressiontests.generic_views.urls' Loading Loading
django/views/generic/base.py +3 −3 Original line number Diff line number Diff line Loading @@ -62,6 +62,9 @@ class View(object): self = cls(**initkwargs) if hasattr(self, 'get') and not hasattr(self, 'head'): self.head = self.get self.request = request self.args = args self.kwargs = kwargs return self.dispatch(request, *args, **kwargs) # take name and docstring from class Loading @@ -80,9 +83,6 @@ class View(object): handler = getattr(self, request.method.lower(), self.http_method_not_allowed) else: handler = self.http_method_not_allowed self.request = request self.args = args self.kwargs = kwargs return handler(request, *args, **kwargs) def http_method_not_allowed(self, request, *args, **kwargs): Loading
tests/regressiontests/generic_views/base.py +11 −0 Original line number Diff line number Diff line Loading @@ -216,6 +216,17 @@ class ViewTest(unittest.TestCase): response_allows = set(response['Allow'].split(', ')) self.assertEqual(set(expected_methods + ('OPTIONS',)), response_allows) def test_args_kwargs_request_on_self(self): """ Test a view only has args, kwargs & request once `as_view` has been called. """ bare_view = InstanceView() view = InstanceView.as_view()(self.rf.get('/')) for attribute in ('args', 'kwargs', 'request'): self.assertNotIn(attribute, dir(bare_view)) self.assertIn(attribute, dir(view)) class TemplateViewTest(TestCase): urls = 'regressiontests.generic_views.urls' Loading