Django表单返回form.u是否有效False
这一定是一个基本的问题,但我对Djnago很陌生,我正在努力学习表单是如何工作的。我在不同的网站和论坛上浏览过,但我还没有理解我做错了什么 这是我的表格:Django表单返回form.u是否有效False,django,forms,Django,Forms,这一定是一个基本的问题,但我对Djnago很陌生,我正在努力学习表单是如何工作的。我在不同的网站和论坛上浏览过,但我还没有理解我做错了什么 这是我的表格: class UploadCSVForm(forms.Form): csv_file = forms.FileField() 这是一个非常简单的表单,用于上传CSV文件 这是我的看法: def layer_create(request, template='layers/layer_create.html'): if request
class UploadCSVForm(forms.Form):
csv_file = forms.FileField()
这是一个非常简单的表单,用于上传CSV文件
这是我的看法:
def layer_create(request, template='layers/layer_create.html'):
if request.method == 'POST':
form = UploadCSVForm(request.POST, request.FILES)
#print form.is_bound # THIS PRINTS TRUE
#print (request.FILES['csv']) # THIS PRINTS THE FILE IN THE MEMORY
if form.is_valid():
print ("valid")
else:
print ("not valid")
out = {'success': False}
return HttpResponse('test site')
这是我模板中的表单:
<form id="file-uploader" method="post" enctype="multipart/form-data" action="{% url "layer_create" %}">
<input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}">
<input type="file" id="file-input" name="csv" />
<button type="submit" id="upload-button" class="btn btn-danger">Upload</button>
</form>
上传
使用函数is_-bound
我看到表单上有实际的数据绑定。
当我打印:request.FILES['csv']
时,我可以看到上传到内存中的文件名
但是我仍然得到
form.is\u valid=False
,没有ant错误或警告。您已经在模板csv
中命名了字段,但是表单希望它被称为csv\u文件
通常,您应该让Django输出模板中的字段,这样可以避免类似的问题。(出错后重新显示字段时,通常也会预先填充字段,但出于浏览器安全原因,文件字段不会这样做。)
您已经在模板
csv
中命名了该字段,但表单希望将其命名为csv\u file
通常,您应该让Django输出模板中的字段,这样可以避免类似的问题。(出错后重新显示字段时,通常也会预先填充字段,但出于浏览器安全原因,文件字段不会这样做。)
您可以执行
print(form.errors)
来打印错误的确切内容。谢谢那很有趣。我发现:- csv\u file
- 这个字段是必需的。
print(form.errors)
来打印错误的确切内容。谢谢那很有趣。我发现:- csv\u file
- 这个字段是必需的。
{{ form.csv_file }}