Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
(r'url', my_app.views.my_view),
(r'url2', generic_view, {params})(r'url', my_app.views.as_view()),CBV — мимикрируют под функции, реализуя метод __call__ (довольноК счастью от этого безобразия они отказались. В текущей реализации на каждый запрос создается отдельный объект, фабрикой .as_view().
хитрым способом, что связано с требованиями потокобезопасности).
class View(object):
@classonlymethod
def as_view(cls, **initkwargs):
# ...
def view(request, *args, **kwargs):
self = cls(**initkwargs)
return self.dispatch(request, *args, **kwargs)
# ...
return view
def dispatch(self, request, *args, **kwargs):
# ...
handler = getattr(self, request.method.lower(), self.http_method_not_allowed)
# ...
self.request = request
self.args = args
self.kwargs = kwargs
return handler(request, *args, **kwargs)
Django 1.3 alpha 1