Ошибка входа в Django при использовании неправильного имени пользователя и пароля в AWS

#django #django-views #django-forms #django-templates

#django #django-просмотры #django-forms #django-шаблоны

Вопрос:

Я потратил много часов, пытаясь решить эту ошибку, но я застрял.

На моем локальном сервере, когда я пытаюсь войти в систему с неправильным адресом электронной почты или паролем, я получаю правильное сообщение об ошибке из представления входа в систему в моем HTML-шаблоне. Однако на моем рабочем сервере, когда я пытаюсь войти в систему с неправильным адресом электронной почты и паролем, я получаю эту ошибку в своем браузере.

Я чувствую, что это как-то связано с uwsgi.

Ошибка значения в / login / недопустимая подпись метода

Метод запроса: URL-адрес запроса POST: http: // Мой общедоступный IP-адрес: 8000 / login/ Версия Django: 3.1.3 Тип исключения: ValueError Значение исключения:
недопустимая подпись метода Местоположение исключения: /usr/lib/python3.8/inspect.py , строка 1808, в _signature_bound_method Исполняемый файл Python: /usr/local/bin/uwsgi Версия Python: 3.8.5Путь к Python:
[‘.’, «, ‘/usr/lib/python38.zip ‘, ‘/usr/lib/python3.8’, ‘/usr/lib/python3.8/lib-dynload’, ‘/home/ubuntu/startup/django/lib/python3.8/site-пакеты’] Серверное время: пятница, 13 ноября 2020 г. 19:55:38 0000

Код входа HTML

         <div class="login">
        <form action="{% url 'login_new' %}" method="post">
            {% csrf_token %}
            <div>
                <h1 class="heading_login_signup">Login</h1>

                {{ form.username.errors }}
                <label class="label_block_bold_colored_red">Email</label>
                
                {{ form.password.errors }}
                <label class="label_block_bold_colored_red">Password</label>
                
            </div>
            <input class="button" type="submit" value="Login">

        </form>

            <div class="login_error">
                {% if messages %}
                    {% for message in messages %}
                        {{ message }}
                    {% endfor %}
                {% endif %}             
            </div>
            <div>
  

Вход Views.py

 def login_new(request):
if request.method == 'POST':
    form = AuthenticationForm(data=request.POST)
    if form.is_valid():
        user=form.get_user()
        login(request,user)
    else:
        messages.error(request, "Incorrect Email or Password")
        return redirect('login_new')
else:
    form = AuthenticationForm

return render(request, 'pages/index.html', {'form':form} )
  

Ответ №1:

Ах, после нескольких часов кодирования я понял это. Проблема была с версией django. Я запускал версию 3.1.3. Я понизил рейтинг до 3.0.5, и проблема была решена!