我在Django中有以下设置。由CharField验证的文本输入和用于图像上载的FileField。当字段为空时所需的响应应该是表单上最初存在的数据,并且用户需要做的就是填写缺失的数据。我列出了可能需要验证的两种情况以及应用程序响应的当前状态:
验证后如何保留文件数据?
view.py
def signin(request, template="signin.html"):
c['form'] = SignInForm()
if request.method == 'POST':
c['form'] = SignInForm(request.POST, request.FILES)
if c['form'].is_valid():
#TODO: Commit data
return redirect("somwhere_else.html")
return render(request, template, c)
forms.py
class SignInForm(forms.Form):
name = forms.CharField(max_length=50,required=True)
photo_input = forms.FileField(required=True)
答案 0 :(得分:2)
Here我找到了:
"由于安全性,您无法在FileUpload控件中指定任何值 限制。
想象一下你,例如有这样的能力,你指定文件路径 在Web服务器上以及用户提交您的页面之后 下载实际上没有被用户选择的文件。所以,在 这种情况下使用的是从用户计算机窃取文件。因此,浏览器 将客户端上FileUpload控件的功能限制为just 能够让用户选择文件并确认上传到 服务器
这样,您应该选择文件作为用户的最后一个动作 能够在任何提交之前完成。
或者,在选择smth时使用AJAX方法不提交整个页面。"