Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

[1.5.X] Clarified usage of as_view kwargs for setting arguments on cl…

…ass based views

Thanks Dave McLain for the patch.

Backport of 7b2d95e from master
  • Loading branch information...
commit 63546533c1fd7cfe003140bbe15a7d465aa787eb 1 parent 74e22f9
@timgraham timgraham authored
View
5 django/views/generic/base.py
@@ -54,8 +54,9 @@ def as_view(cls, **initkwargs):
"keyword argument to %s(). Don't do that."
% (key, cls.__name__))
if not hasattr(cls, key):
- raise TypeError("%s() received an invalid keyword %r" % (
- cls.__name__, key))
+ raise TypeError("%s() received an invalid keyword %r. as_view "
+ "only accepts arguments that are already "
+ "attributes of the class." % (cls.__name__, key))
def view(request, *args, **kwargs):
self = cls(**initkwargs)
View
5 docs/ref/class-based-views/index.txt
@@ -37,10 +37,11 @@ A class-based view is deployed into a URL pattern using the
is modified, the actions of one user visiting your view could have an
effect on subsequent users visiting the same view.
-Any argument passed into :meth:`~django.views.generic.base.View.as_view()` will
+Arguments passed into :meth:`~django.views.generic.base.View.as_view()` will
be assigned onto the instance that is used to service a request. Using the
previous example, this means that every request on ``MyView`` is able to use
-``self.size``.
+``self.size``. Arguments must correspond to attributes that already exist on
+the class (return ``True`` on a ``hasattr`` check).
Base vs Generic views
---------------------
Please sign in to comment.
Something went wrong with that request. Please try again.