[英]MultiValueDictKeyError Django
我试图使简单的表单运行,但我有成本,我没有使用django的forms.forms,而是直接从HTML生成表单。
好吧,我的表单仅具有1个文件字段和一个发布按钮,在该字段中,我想添加一个.xlsx并从该文件获取数据并将其注册到特定模型中,但是它给了我以下错误:
django.utils.datastructures.MultiValueDictKeyError: "'ar'"
我想向您展示我如何构造代码,但我不明白为什么会出错,我也想给我一个关于如何获取我在输入文件中选择并注册的excel数据的想法它在BD:
视图:
from django.views.generic import View
from django.shortcuts import render,redirect
from condominio.models import *
class TestExcel(View):
def post (self, request, *args, **kwargs):
print (request.FILES)
file = request.FILES['ar']
return HttpResponse('this is post')
def get(self, request, *args, **kwargs):
return render(request ,'testing.html' ,{})
模板:
{% extends 'base.html' %}
{% load staticfiles %}
{% load static %}
{% block content %}
<div class="container">
<div class="row">
<form action="#" method="POST">
{% csrf_token %}
<div class="file-field input-field">
<div class="btn">
<span>File</span>
<input name="ar" id = "ar" type="file" >
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text" >
</div>
</div>
<button class="btn waves-effect waves-light" type="submit" name="action">Submit
<i class="material-icons right">send</i>
</button>
</form>
</div>
</div>
{% endblock %}
您应该将enctype="multipart/form-data"
属性添加到form
标签中:
<form action="#" method="POST" enctype="multipart/form-data">
摘自Django文档 :
请注意,仅当请求方法为POST并且发布请求的属性为enctype =“ multipart / form-data”时,request.FILES才会包含数据。 否则,request.FILES将为空。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.