gpt4 book ai didi

表单错误时 Django 表单文件字段消失

转载 作者:行者123 更新时间:2023-12-03 20:05:42 24 4
gpt4 key购买 nike

这是问题所在,我有一个包含 File 字段的 Django 表单,即:

photo = forms.FileField(help_text="Please attach a photo", required=False)

如果表单验证,则 File 字段有界并正确保存。 问题是当用户填写所有表单并且它不验证时:所选文件的路径消失 .

因此,如果用户没有意识到这一点,他/她会修复其他字段错误并再次提交 - 这次没有照片。

以防万一,表单是在 View 中创建的,如下所示:
ProfileForm(request.POST or None, request.FILES or None)

HTML是:
<div id="uniform-id_photo" class="uploader">
<input id="id_photo" class="clearablefileinput" type="file" name="photo" size="19" style="opacity: 0;">
<span class="filename" style="-moz-user-select: none;">No file selected</span>
<span class="action" style="-moz-user-select: none;">Choose File</span>
</div>

以前有人遇到过同样的问题吗?对解决方案有任何想法吗? :)

谢谢!

最佳答案

不幸的是,这是浏览器强加的问题(实际上是一个安全功能),因此无法解决。浏览器不会让您为文件输入指定初始值,并且您无法解决此问题。

原因是如果一个网站可以做到这一点,它会打开一个向量,允许任何网站通过猜测文件路径来窃取你计算机上的任何文件——他们可能只是在后台运行一个脚本,试图发布有趣的内容文件返回服务器。

唯一的解决方法是无论表单是否有效,都将上传的文件实际保存在服务器上,然后当您将表单和错误返回给用户时,表明您已收到文件并且他们应该只填写该字段替换它。

关于表单错误时 Django 表单文件字段消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7893236/

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