#javascript #html #python-3.x #django #django-views
#javascript #HTML #python-3.x #джанго #django-просмотры #django
Вопрос:
Я пытаюсь получить получение данных из HTML-формы.
Но это дает мне многозначную ошибку. В нем также говорится
During handling of the above exception, another exception occurred:
Мой HTML-код :
<!DOCTYPE html>
<html>
<head>
<title>Document</title>
</head>
<body>
<form action="home_redirect/fd" id="redirect" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<input type="text" value={{user}} name="user">
<input type="submit">
</form>
<script>
document.getElementById("redirect").submit()
</script>
</body>
</html>
Мой views.py :
def home(request):
user = request.POST['user']
return render(request, 'main.html', {'login': user})
Комментарии:
1.
method="post"
, таким образом, данные находятся вrequest.POST
(полезная нагрузка запроса).
Ответ №1:
В вашем html я удаляю action
и скрипт. Вот так:
<!DOCTYPE html>
<html>
<head>
<title>Document</title>
</head>
<body>
<form id="redirect" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<input type="text" value={{user}} name="user">
<input type="submit">
</form>
</body>
</html>
Здесь мы проверяем, является ли метод POST
затем redirect
вашим url
.
def home(request):
user = request.POST
if request.method =="POST":
return redirect('home_redirect') # home_redirect is the redirected url
return render(request, 'afl_announcement/main.html', {'login': user})
Комментарии:
1. как называется URL-адрес перенаправления??
return redirect('url_name')
отсюдаurl_name
следует название URL-адреса перенаправления2. Эта ссылка может быть вам полезна: docs.djangoproject.com/en/3.1/topics/http/shortcuts/… . При нажатии кнопки отправки в домашнюю функцию получите запрос, если вы не будете перенаправлять в форме.
3.
return redirect('https://www.google.com/')
чтобы легко поэкспериментировать с перенаправлением на Google
Ответ №2:
В вашем <form>
вы указываете:
<form action="home_redirect/fd" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<input type="text" value={{user}} name="user">
<input type="submit">
</form>
итак, вы делаете POST-запрос, и данные кодируются в полезной нагрузке запроса. Вы получаете доступ к этим данным через request.POST
:
def home(request):
user = request.POST['user']
return render(request, 'main.html', {'login': user})
Комментарии:
1. Я внес изменения, о которых вы говорили, но это все равно не сработало.