我正在尝试使用基于类的视图重写登录视图。我看不到任何错误,但我的表格没有加载。我正在使用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']}>