簡體   English   中英

Django request.POST 返回空字典

[英]Django request.POST returns an empty dict

代碼跳過整個 if 塊直接轉到最后一個 else。 我正在使用 django.forms 從用戶那里獲取輸入。 當方法設置為 GET 時會發生同樣的事情。 我嘗試了與正常 HTML forms 相同的結果。 但奇怪的事實是,它在項目的初始階段正常工作,而我正在試驗我的視圖和模型,這開始導致我的項目出現錯誤,因為我無法獲得用戶輸入。

視圖.py

def form(request):
    form = InputForm()
    return render(request, 'classifier/form.html', {'form':form})

def output(request):
    print(request.POST) #  returns empty dict
    if request.method == "POST":
        form = InputForm(request.POST)
        if form.is_valid():
            url = form.cleaned_data['input_url']
            print(url)
            return render(request, 'classifier/output.html', {'url':url})
        else:
            print(form.errors())

    else:
        print("error")
        error = "Oops"

    return render(request, 'classifier/output.html',{'url':error})

表格.html

<form action="{% url 'classifier:output' %}" method="POST">
   {% csrf_token %}
   {% for non_field_error in form.non_field_error %}
      <p class="help is-danger">{{ non_field_error}}</p>
   {% endfor %}
   {{ form }}
   {% for error in form.erros %}
       <p class="help is-danger">{{ error }}</p>
   {% endfor %}
   <div class="text-center">
       <button type="button" class="btn btn-primary" id="btn" value='Save'><a href="{% url 'classifier:output' %}">Submit</a></button>
   </div>
</form>

網址.py

from django.urls import path
from . import views

app_name = 'classifier'

urlpatterns = [
    path('', views.index, name='index'),
    path('form/',views.form, name='form'),
    path('output/',views.output, name='output'),
]

在你的模板中:

<div class="text-center">
       <button type="button" class="btn btn-primary" id="btn" value='Save'><a href="{% url 'classifier:output' %}">Submit</a></button>
   </div>

提交按鈕實際上是鏈接: <a href="{% url 'classifier:output' %}">Submit</a>

所以下面有一個簡單的鏈接。

代碼的更正部分如下所示:

<div class="text-center">
           <button type="submit" class="btn btn-primary" id="btn">Submit</button>
       </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM