Django login invalid form

Я все сделал правильно, но мой логин не работает Я поставил 2 input в форме логина, но запрос пользователя отправил мне 3 поля, 1 из которых я не поставил и я получаю эти поля номер телефона - логин-пароль - номер телефона

form*

class LoginForm(AuthenticationForm):

phone_number = forms.CharField(widget=forms.TextInput(
    attrs={'class': 'form-control mb-3', 'placeholder': 'phone_number', 'id': 'login-phone_number'}))
password = forms.CharField(widget=forms.PasswordInput(
    attrs={
        'class': 'form-control',
        'placeholder': 'Password',
        'id': 'login-pwd',
    }
))

view*

def account_login(request):
if request.user.is_authenticated:
    return redirect('/')

if request.method == 'POST':
    form = LoginForm(request.POST)
    print(form)
    print(form.is_valid())   =>    #false
    if form.is_valid(): 
        phone_number = form.cleaned_data.get('phone_number')
        password = form.cleaned_data.get('password')
        user = authenticate(phone_number=phone_number, password=password)
        print(user)

        if user is not None:
            login(request, user)
            return redirect('/')
        else:
            messages.error(request, "Invalid username or password.")

    else:
        messages.error(request, "Invalid username or password.")
form = LoginForm(request.POST)
return render(request, "account/login.html", {"form": form})

login.html*

{% extends "./sub_base.html" %}
{% block title %}Log-in{% endblock %}
{% block sub_content %}

 <form class="account-form" action="{% url 'account:login' %}" method="post">
 {% csrf_token %}
 <h3 class="mb-4">Sign In</h3>
 {% if form.errors %}
 <div class="alert alert-primary" role="alert">
      Error: Username or Password not correct!
 </div>
 {% endif %}
 <label class="form-label">{{ form.username.label}}</label>
 {{ form.username}}
 <label class="form-label">{{ form.password.label}}</label>
 {{ form.password}}
 <div class="d-grid gap-2">
   <input type="hidden" name="next" value="{{ next }}">
   <button class="btn btn-primary py-2 mb-4 mt-5 fw-bold" type="submit" value="Log-in">Sign in
 </button>
</form>

{% endblock %}

вы не сделали имя пользователя!?

        widget=forms.TextInput(
            attrs={'placeholder': 'username', 'class': 'input100'}),

вы назвали form.username в вашем шаблоне, но в форме нет ввода имени пользователя?! возможно, вам следует изменить username в login.html на phone_number, потому что нет имени пользователя в представлении и форме Я предлагаю поставить request в authenticate следующим образом:

user = authenticate(request,phone_number=phone_number, password=password)

замените все телефонные номера на имя_пользователя или сделайте для него ввод Надеюсь, это сработает

Вернуться на верх