#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, и проблема была решена!