[英]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.