Вместо использования u
и p
в названии полей ввода, вы должны использовать username
и password
.
<input type="text" name="username" id="username" placeholder="Username" required="required"/>
<input type="password" name="password" id="username" placeholder="Password" required="required"/>
Кроме того, обновите представление для получения данных из username
и password
:
def logincheck(request):
if request.method == "POST":
my_login_form = LoginForm(request.POST)
if my_login_form.is_valid():
username = my_login_form.cleaned_data['username']
password = my_login_form.cleaned_data['password']
# authentication should be done here. documentation: https://docs.djangoproject.com/en/2.2/topics/auth/default/
return redirect('/profile')
Наконец, когда вы работаете с формами django, почему бы не использовать их вtemplate?
Для этого вам нужно отправить данные формы в шаблон, например:
def logincheck(request):
my_login_form = LoginForm(request.POST or None)
if request.method == "POST":
if my_login_form.is_valid():
username = my_login_form.cleaned_data['username']
password = my_login_form.cleaned_data['password']
# authentication should be done here. documentation: https://docs.djangoproject.com/en/2.2/topics/auth/default/
return redirect('/profile')
return render('logincheck_template.html', context={'form':my_login_form})
И использовать его template:
<div class="login">
<h1>Login to your account</h1>
{% for field in form %}
{{ field.errors }}
{{ field.label_tag }} {{ field }}
{% endfor %}
<button type="submit" class="btn btn-primary btn-block btn-large">Login</button>
</div>