Html 在django中从表单中提取用户名和密码

Html 在django中从表单中提取用户名和密码,html,django,forms,twitter-bootstrap,django-authentication,Html,Django,Forms,Twitter Bootstrap,Django Authentication,半年多前,我开始在Django做一个项目,因为我想不出一个小细节,所以把它放在了次要位置,但我又回到了这个项目上,我想我可能会在这里得到快速的回应 我的网站工具栏上有一个小表单,由以下HTML生成: <form action="/auth/" method="post" class="navbar-form navbar-right" role="form"> {% csrf_token %} <div class="form-group">

半年多前,我开始在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>
上面的代码是我想要处理的登录按钮的点击,正如我的url.py所传递的那样。 然而,每当我提交表单时,我的调试语句总是说电子邮件和密码是空字符串。因此,我必须错误地从表单中提取信息

如何成功登录?请帮忙

谢谢,
erip

无法从请求对象中获取值的原因是两个输入都没有名称属性。request.POST.get'username'尝试获取输入的值,该输入的name属性为username,在您的情况下,该属性不存在。因此,添加一个name属性,您就可以这样做了


您还可以进一步利用Django的forms模块,该模块自动为每个字段生成并分配一个name属性,最终将这些输入绑定回您的登录表单。关于这方面的更多信息,请访问官方网站。

如何生成表单的HTML?我看不到您输入的名称属性。我不太理解您的问题。您如何生成您在问题中发布的表单HTML?您使用的是Django的模板还是手动键入HTML代码?我使用的是Bootstrap中的模板。我添加了csrf_令牌、action=/auth/method=post和注册按钮。其他一切都来自于添加的name=username和name=password,它就像一个符咒。非常感谢!
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/')