Логин пользователя Django = имя пользователя никогда не верно - PullRequest
0 голосов
/ 28 декабря 2018

У меня проблемы с моим логином в Django.

Приведенный ниже оператор if (если пользователь не None :) всегда разрешается как false, поэтому он переходит к другому.

I 'Я не уверен, почему, и я был бы признателен за любую помощь

Спасибо

VIEWS.PY

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>

1 Ответ

0 голосов
/ 28 декабря 2018

Вам необходимо присвоить вашим <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>).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...