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

This commit is contained in:
Varun Sharma 2016-01-09 17:10:08 +05:30 committed by Tim Graham
parent 0bc5cd6280
commit 3d6474e1a5
7 changed files with 19 additions and 10 deletions

View File

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

View File

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

View File

@ -19,7 +19,12 @@ View
.. class:: django.views.generic.base.View .. class:: django.views.generic.base.View
The master class-based base view. All other class-based views inherit from 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** **Method Flowchart**
@ -30,7 +35,7 @@ View
**Example views.py**:: **Example views.py**::
from django.http import HttpResponse from django.http import HttpResponse
from django.views.generic import View from django.views import View
class MyView(View): class MyView(View):

View File

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

View File

@ -71,7 +71,7 @@ something like::
In a class-based view, this would become:: In a class-based view, this would become::
from django.http import HttpResponse from django.http import HttpResponse
from django.views.generic import View from django.views import View
class MyView(View): class MyView(View):
def get(self, request): 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:: ``greeting`` like this::
from django.http import HttpResponse from django.http import HttpResponse
from django.views.generic import View from django.views import View
class GreetingView(View): class GreetingView(View):
greeting = "Good Day" greeting = "Good Day"
@ -199,7 +199,7 @@ A similar class-based view might look like::
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
from django.shortcuts import render from django.shortcuts import render
from django.views.generic import View from django.views import View
from .forms import MyForm from .forms import MyForm

View File

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

View File

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