Форма входа пользователя всегда возвращает неверную форму - PullRequest
0 голосов
/ 23 июня 2019

Я хочу сделать вид входа в систему, с формой, относящейся к модели пользователя django.contrib.auth.

Но при проверке if form.is_valid(): это всегда возвращает False, без ошибок.

Используйте Django 2.2 и Python 3.7

Это мой код:

  • forms.py
class LoginForm(AuthenticationForm):
    class Meta:
        model = User
        fields = ('username', 'password')
  • views.py
class LoginView(View):
    def get(self, req):
        form = LoginForm()
        viewitems = {
            'title': 'Login',
            'form': form
        }
        return render(req, 'login.html', viewitems)

    def post(self, req):
        form = LoginForm(req.POST)
        viewitems = {
            'title': 'Login',
            'form': form
        }

        if form.is_valid():
            # some code to login.
            # never access to this part now.
        else:
            return render(req, 'login.html', viewitems)
  • login.html
{% block content %}
  <div align="center">
    <h2>Login.</h2>
    <form method="post">
      {% csrf_token %}
      {% for field in form %}
        <p>
          {{ field.label_tag }}<br>
          {{ field }}
          {% for error in field.errors %}
            <p style="color: red">{{ error }}</p>
          {% endfor %}
        </p>
      {% endfor %}
      <button type="submit">Login</button>
    </form>
  </div>
{% endblock %}

Это странно, но регистрационная форма отлично работает для меня.

...