我对我遇到的问题感到非常沮丧。我有一个大写的手写(不使用Django的形式),我只是试图从视图中的输入访问数据(在这种情况下,一些输入发布,其他输入不是)。
暂时搁置该表格的细节,因为有太多的东西在起作用,在我的故障排除过程中,我写了一个我能想到的最简单的表格,现在除了csrf_token之外我没有获得POST数据。
我不知道为什么会这样,因为类似的(并且更复杂)类似于我正在运行的其他几个django项目。对于这个例子,我尝试使用action =“”也无济于事。有什么东西让我非常明显吗?
这是html:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form method="POST" id="theForm" action="/simpleForm/">{% csrf_token %}
<input type="text" id="theText" value="Where am I?" />
<input type="hidden" id="hiddenInput" value="I don't exist" />
<input type="submit" />
</form>
</body>
</html>
以下是检查数据的简单视图:
from django.shortcuts import render
def simpleForm(request):
if (request.method == 'POST'):
print('In post')
print(request.POST)
for i in request.POST.keys():
print('key: {0} value: {1}'.format(i, request.POST[i]))
return render(request, 'simpleForm.html')
else:
return render(request, 'simpleForm.html')
答案 0 :(得分:5)
你错过了这个名字&#39; HTML表单中标记的属性。没有这些,Django不会将它们添加到request.POST
<form method="POST" id="theForm" action="/simpleForm/">{% csrf_token %}
<input type="text" id="theText" name="mytext" value="Where am I?" />
<input type="hidden" id="hiddenInput" name="myhidden" value="I don't exist" />
<input type="submit" />