从基于类的视图访问请求对象

时间:2014-07-08 23:24:56

标签: python django

我的代码如下

url(r'login$', views.LoginView.as_view(), name='login'),

并查看如下

class LoginView(TemplateView):
    def __init__(self, *args, **kwargs):
        #How to operate on request Object's type and its params.

我在代码中提到了我的问题作为评论。

1 个答案:

答案 0 :(得分:2)

如@karthikr所述,你不应该重写__init __()。请求对象首先在dispatch()方法中可用,该方法在__init __()之后立即调用,但您也不需要覆盖该方法。其主要目的是调用get(),post()或其他相关方法处理程序。但是,一般来说,没有必要覆盖它们。

如果你真的绝对必须尽可能早地抓住请求,那么派遣方法是你最好的选择。

class LoginView(TemplateView):
    def dispatch(self, request, *args, **kwargs):
        print self.request  # Works!
        return super(LoginView, self).dispatch(request, *args, **kwargs)  # Don't forget this