Django登录用户=用户名永不为真

kikee1222

我的Django登录有问题。

下面的if语句(如果user不是None :)始终解析为false,因此移至else。

我不确定为什么,我将不胜感激

谢谢

观点

def index(request):
    return render(request, 'home.html', {})

def login_user(request):
    if request.method == 'POST':
        user = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(username=user, password=password)
        if user is not None:
            login(request, user)
            messages.success(request, ('You are logged in'))
            return redirect('index')
        else:
            messages.success(request, ('Login failed'))
            return redirect('login')
    else:    
        return render(request, 'login.html', {})

这是登录表单:

    <form name="form1", id="form1" method="post">
    {% csrf_token %}
      <div class="form-group">
    <input type="text" class="form-control" id="user" aria-describedby="emailHelp" placeholder="Enter email">
  </div>
  <div class="form-group">
    <input type="password" class="form-control" id="password" placeholder="Password"> 
  </div>
  <button type="submit" class="btn btn-danger">Login</button>
  </form>
奥雷尔·怀特

您需要为您的<input>元素赋予name属性,以便可以在Python代码中识别它们。

<input name="username" type="text" class="form-control" id="user" aria-describedby="emailHelp" placeholder="Enter email">
...
<input name="password" type="password" class="form-control" id="password" placeholder="Password">

name必须匹配request.POST.get(<this>)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章