从表单中获取数据到 Django 中不起作用

Posted

技术标签:

【中文标题】从表单中获取数据到 Django 中不起作用【英文标题】:Getting data from form into Django not working 【发布时间】:2017-11-11 20:50:50 【问题描述】:

我正在尝试在 Django 中编写一个让用户登录的简单应用程序。我已经下载了一个漂亮的引导登录模板,但我无法将它连接到我的 Django 项目。当我点击提交时,没有任何反应,这是视图:

def login_view2(request):
if request.method == 'POST':
    print("POST METHOD")
    form = LoginForm(request.POST)
    if form.is_valid():
        print("FORM VALID")
        uname = form.cleaned_data['username']
        pword = form.cleaned_data['password']
        user = authenticate(username=uname, password=pword)
        if user is not None:
            if user.is_active:
                login(request, user)
                return HttpResponseRedirect('/')
            else:
                print("The account has been disabled!")
        else:
            print("The username and password were incorrect!")
else:
    print("LOGIN FORM SHOWN")
    form = LoginForm()
    return render(request, 'login2.html', 'form': form)

这是表格

<form id="login-form" action="login2/" method="post">
  % csrf_token %
  <div class="modal-body">
    <div id="div-login-msg">
      <div id="icon-login-msg" class="glyphicon glyphicon-chevron-right"></div>
      <span id="text-login-msg">Type your username and password.</span>
    </div>
    <input id="login_username" class="form-control" type="text" placeholder="Username" required>
    <input id="login_password" class="form-control" type="password" placeholder="Password" required>
  </div>

  <div class="modal-footer">
    <div>
      <input type="submit">Login</input>
    </div>
  </div>
</form>

非常感谢您!

【问题讨论】:

不,这不是你提问的方式。您在问题本身中发布代码的相关部分。 @DanielRoseman 你是对的,对不起。我刚刚编辑了问题。 【参考方案1】:

您没有为 HTML 字段提供name 属性,因此浏览器无法向服务器发送任何数据。

您还需要在表单无效时显示错误,使用 form.errors

【讨论】:

以上是关于从表单中获取数据到 Django 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Ajax 发布请求在 django 中不起作用

表单动作在 django 中不起作用

Django 表单在 html 模板中不起作用,它只是显示按钮

获取数据在 CodeIgniter 中不起作用

if(isset($_FILES)) 在 PHP 中不起作用

表单序列化在 Safari 中不起作用?