【发布时间】:2015-02-26 06:44:57
【问题描述】:
半年前,我开始在 Django 中进行一个项目,但因为我无法弄清楚一个小细节,所以我把它搁置了,但我又回到了这个项目上,并认为我可能会得到一个在这里快速响应。
我的网站工具栏中有一个由以下 HTML 生成的迷你表单:
<form action="/auth/" method="post" class="navbar-form navbar-right" role="form"> {% csrf_token %}
<div class="form-group">
<input type="text" placeholder="Email" class="form-control">
</div>
<div class="form-group">
<input type="password" placeholder="Password" class="form-control">
</div>
<button type="submit" class="btn btn-primary">Login</button>
<a class="btn btn-primary" href="/register/">Signup</a>
</form>
我们的目标是避免使用单独的登录页面,并在用户登录之前将其放在顶部。
目标是使用 Django 的身份验证来登录此用户。
def auth_view(request):
email = request.POST.get('username', '')
password = request.POST.get('password', '')
print "username is ", email, "password is ", password
user = auth.authenticate(username=email, password=password)
if user is not None:
auth.login(request, user)
return HttpResponseRedirect('/loggedin/')
else:
return HttpResponseRedirect('/invalid/')
上面的代码是我想要处理登录按钮的点击,由我的 urls.py 处理。 然而,每当我提交表单时,我的调试语句总是说电子邮件和密码是空字符串。因此,我一定是错误地从表单中提取信息。
我怎样才能成功登录?请帮忙!
谢谢, erip
【问题讨论】:
-
如何生成表单的 HTML?我看不到您输入的
name属性。 -
我不太明白你的问题。
-
如何生成您在问题中发布的表单 HTML?你是在使用 Django 的模板还是手动输入 HTML 代码?
-
我使用了来自 Bootstrap 的模板。我添加了 csrf_token、
action="/auth/" method="post"和注册按钮。其他一切都来自getbootstrap.com/examples/jumbotron
标签: html django forms twitter-bootstrap django-authentication