gpt4 book ai didi

python - 奇怪的django文件上传错误

转载 作者:行者123 更新时间:2023-11-30 23:39:46 25 4
gpt4 key购买 nike

尽管有很多主题,但我无法在其中找到正确的问题+答案我的问题是这样的:

我正在尝试编写一个文件上传。一旦我提交表单,就会出现此错误:

MultiValueDictKeyError at /anzeige_save/
Key 'file' not found in <MultiValueDict: {}>

这是我的模型:

class Anzeige(models.Model):
titel = models.CharField(max_length=300)
anzeige = models.CharField(max_length=1000)
date = models.DateTimeField()
datum = models.CharField(max_length=12)
file = models.FileField(upload_to='/anzeige/D-d-M-Y/')
def __unicode__(self):
return self.titel

这是我的观点:

if request.path == '/anzeige_save/':
anzeige=Anzeige(titel=request.POST['titel'], anzeige=end_anzeige,date=datetime.datetime.now(), datum=request.POST['datum'],file=request.FILES['file'])
anzeige.save()
return HttpResponse("Anzeige saved successfully")

这是我在前端的ajax:

var title = document.getElementById(title).value;
var body = document.getElementById(body).value;
var file = document.getElementById(name_file).value;
var datum = document.getElementById(datum).value;
if(title==" " || body==" " || title=="" || body=="" || datum=="" || datum==" " ){
alert("Please fill out all!");
}else{
$.ajax({
url: "/anzeige_save/",
type: "POST",
data: {anzeige:body,titel:title,file:file,datum:datum},
}).success(function(data){
$(succ_message).text(data);
$(succ_message).fadeIn(1000);
$(succ_message).fadeOut(2000);
})
}

这是以下格式的文件:

...
<input type="file" id="name_file" name="name_file" size="40" maxlength="100000"><br />
...

我在这里遗漏了什么吗?

我有带有文件字段的模型,并且我正在将其他字段(包括文件)保存到实例中。

感谢您的光临! :)

最佳答案

确保您的表单是多部分的:

enctype="multipart/form-data"

忘记这一点是导致错误的常见原因。

编辑:无法通过 ajax* 上传文件。有几个选项:

  1. 发布表单
  2. 如果您不希望刷新页面,请将表单发布到 iframe 中
  3. *不完全正确。您可以使用 FormData对象(旧版浏览器不支持)

关于python - 奇怪的django文件上传错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13265459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com