【问题标题】:File upload form not valid文件上传表单无效
【发布时间】:2016-05-30 15:46:48
【问题描述】:

我有一个无法成功验证的文件上传表单。 表单加载正常,我可以上传文件,但在“提交”之后,我无法通过视图中的 Fileform.is_valid()。我主要从 Django 1.9 File Uploads 文档中复制了这个视图以及模型和表单模型,但我一定遗漏了一些东西。

view.py 是,

def file_sharing_form(request):
if request.method == "POST":
    file = FileForm(request.POST, request.FILES)
    if file.is_valid():
        fform = file.save(commit=False)
        fform.author = request.user
        fform.pub_date = timezone.now()
        fform.submitted_date = timezone.now()
        fform.approved = False
        fform.save()
        # email admin
        admin_email = User.objects.all().filter(is_superuser = True)
        subject = 'File submitted to QQIresources, awaiting approval'
        to_email = admin_email[0].email
        from_email = request.user.email
        message = 'A file has been submitted to QQIresources by ' + str(request.user) + ' and is awaiting admin approval. \n \n Title: ' + str(fform.title) + '\n Author: ' + str(fform.author) + '\n Description: ' + str(fform.description)
        send_mail(subject, message, from_email, [to_email])
        return redirect('init')
fileform = FileForm()
return render(request, 'file_form.html', {'fileform': fileform})

【问题讨论】:

  • 我知道变量名很接近,但我认为我使用的是正确的 Fileform = FileForm(.... 小写 'f' 表示第一个形式的形式和大写形式的 'F' 形式第二个。谢谢
  • 我将对其进行更改以使它们更加独特。但这不是问题,谢谢

标签: django validation file-upload


【解决方案1】:

我猜你在 html 中错过了 enctype="multipart/form-data" 。对于任何类型的文件上传,请在您的表单定义中添加此内容。

<form action="{% url 'your_url' %}" enctype="multipart/form-data">
    <input type="file">
</form>

【讨论】:

  • 我确实在文档中阅读了有关 enctype="multipart/form-data" 的信息,但我认为它是表单中的句柄。显然不是,现在可以工作了,谢谢
  • 不客气 :) @ofey
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-15
  • 1970-01-01
  • 2023-03-13
  • 2016-08-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-21
相关资源
最近更新 更多