繁体   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