Получение многозначного ошибки в выборке POST данных django

#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. Я внес изменения, о которых вы говорили, но это все равно не сработало.