Browse Source

Fixed #25385 -- Allowed importing views.generic.View from views.View.

Varun Sharma 9 years ago
parent
commit
3d6474e1a5

+ 3 - 0
django/views/__init__.py

@@ -0,0 +1,3 @@
+from django.views.generic.base import View
+
+__all__ = ['View']

+ 1 - 1
docs/internals/contributing/writing-code/coding-style.txt

@@ -125,7 +125,7 @@ Imports
 
 * Use convenience imports whenever available. For example, do this::
 
-      from django.views.generic import View
+      from django.views import View
 
   instead of::
 

+ 7 - 2
docs/ref/class-based-views/base.txt

@@ -19,7 +19,12 @@ View
 .. class:: django.views.generic.base.View
 
     The master class-based base view. All other class-based views inherit from
-    this base class.
+    this base class. It isn't strictly a generic view and thus can also be
+    imported from ``django.views``.
+
+    .. versionchanged:: 1.10
+
+        The ability to import from ``django.views`` was added.
 
     **Method Flowchart**
 
@@ -30,7 +35,7 @@ View
     **Example views.py**::
 
         from django.http import HttpResponse
-        from django.views.generic import View
+        from django.views import View
 
         class MyView(View):
 

+ 2 - 1
docs/releases/1.10.txt

@@ -208,7 +208,8 @@ Forms
 Generic Views
 ^^^^^^^^^^^^^
 
-* ...
+* The :class:`~django.views.generic.base.View` class can now be imported from
+  ``django.views``.
 
 Internationalization
 ^^^^^^^^^^^^^^^^^^^^

+ 3 - 3
docs/topics/class-based-views/intro.txt

@@ -71,7 +71,7 @@ something like::
 In a class-based view, this would become::
 
     from django.http import HttpResponse
-    from django.views.generic import View
+    from django.views import View
 
     class MyView(View):
         def get(self, request):
@@ -113,7 +113,7 @@ and methods in the subclass. So that if your parent class had an attribute
 ``greeting`` like this::
 
     from django.http import HttpResponse
-    from django.views.generic import View
+    from django.views import View
 
     class GreetingView(View):
         greeting = "Good Day"
@@ -199,7 +199,7 @@ A similar class-based view might look like::
 
     from django.http import HttpResponseRedirect
     from django.shortcuts import render
-    from django.views.generic import View
+    from django.views import View
 
     from .forms import MyForm
 

+ 2 - 2
docs/topics/class-based-views/mixins.txt

@@ -226,7 +226,7 @@ We'll demonstrate this with the ``Author`` model we used in the
 
     from django.http import HttpResponseForbidden, HttpResponseRedirect
     from django.urls import reverse
-    from django.views.generic import View
+    from django.views import View
     from django.views.generic.detail import SingleObjectMixin
     from books.models import Author
 
@@ -570,7 +570,7 @@ You can of course pass through keyword arguments to
 would in your URLconf, such as if you wanted the ``AuthorInterest`` behavior
 to also appear at another URL but using a different template::
 
-    from django.views.generic import View
+    from django.views import View
 
     class AuthorDetail(View):
 

+ 1 - 1
tests/view_tests/views.py

@@ -10,13 +10,13 @@ from django.http import Http404, HttpResponse, JsonResponse
 from django.shortcuts import render
 from django.template import TemplateDoesNotExist
 from django.urls import get_resolver
+from django.views import View
 from django.views.debug import (
     SafeExceptionReporterFilter, technical_500_response,
 )
 from django.views.decorators.debug import (
     sensitive_post_parameters, sensitive_variables,
 )
-from django.views.generic import View
 
 from . import BrokenException, except_args