基于类的登录表单通过包装身份验证表单不起作用

时间:2014-04-15 16:03:51

标签: python django django-forms django-class-based-views

我正在尝试使用基于类的视图重写登录视图。我看不到任何错误,但我的表格没有加载。我正在使用ajax来提供表单。

class Login(FormView):
    form_class = AuthenticationForm

    def form_valid(self, form):
        redirect_to = settings.LOGIN_REDIRECT_URL
        auth_login(self.request, form.get_user())
        if self.request.session.test_cookie_worked():
            self.request.session.delete_test_cookie()
        return HttpResponseRedirect(redirect_to)

    def form_invalid(self, form):
        return self.render_to_response(self.get_context_data(form=form))

    @method_decorator(sensitive_post_parameters('password'))
    def dispatch(self, request, *args, **kwargs):
        request.session.set_test_cookie()
        return super(Login, self).dispatch(request, *args, **kwargs)

以下是网址:

url(r'^login$', Login.as_view(template_name='emp_users/login.html')),

以下是控制台日志:

[15/Apr/2014 21:21:09] "GET /emp_users/login HTTP/1.1" 200 606

但表格并没有加载。 我不确定我在这里缺少什么。

模板:

<script type="text/javascript" src="{{ STATIC_URL }}jquery/hr_base_nav_bar_main.js"></script>
{% if form.errors %}
<p>Your username and password didn't match. Please try again. </p>
{% endif %}

<form method="post" action="/emp_users/login">
{% csrf_token %}

<table>
<tr>
    <th>{{ form.username.label_tag }}</th>
    <td>{{ form.username }}</td>
</tr>
<tr>
    <th>{{ form.password.label_tag }}</th>
    <td>{{ form.password }}</td>
</tr>
</table>

<input type="submit" value="login" />
</form>

看起来表单没有约束力。但是打印了request.POST给出了

<QueryDict: {'password': ['12345'], 'username': ['preetam'], 'csrfmiddlewaretoken': ['LTxsYlAdmDtVwWwuO1ssG13reASB9itV']}>

0 个答案:

没有答案