Commit 7b2d95eb authored by Tim Graham's avatar Tim Graham
Browse files

Clarified usage of as_view kwargs for setting arguments on class based views

Thanks Dave McLain for the patch.
parent 3587991b
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -54,8 +54,9 @@ class View(object):
                                "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)
+3 −2
Original line number Diff line number Diff line
@@ -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
---------------------