Django 1.8手写表单无POST数据
Django 1.8 handwritten form no POST data
我遇到的问题让我非常沮丧。我有一个大的手写表单(不使用 Django 的表单),我只是想从视图中的输入访问数据(在那种情况下,一些输入被发布,其他的则没有)。
暂时搁置该表格的细节,因为有太多事情在起作用,在我的故障排除过程中,我写了我能想到的最简单的表格,现在除了csrf_token。
我不知道为什么会这样,因为类似的东西(而且更复杂)在我 运行 的其他几个 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')
您缺少 HTML 表单中标签的 'name' 属性。没有这些,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" />
我遇到的问题让我非常沮丧。我有一个大的手写表单(不使用 Django 的表单),我只是想从视图中的输入访问数据(在那种情况下,一些输入被发布,其他的则没有)。
暂时搁置该表格的细节,因为有太多事情在起作用,在我的故障排除过程中,我写了我能想到的最简单的表格,现在除了csrf_token。
我不知道为什么会这样,因为类似的东西(而且更复杂)在我 运行 的其他几个 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')
您缺少 HTML 表单中标签的 'name' 属性。没有这些,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" />