我有一个输入标签,用户必须在其中上传文件。现在,如果用户没有上传任何东西,我会在主视图中执行此操作:
if len(request.FILES) != 0:
data = request.FILES['some_file']
...do some work...
else:
return render(request, 'App/nofile.html' )
如果没有文件,我会将用户带到另一个页面,上面显示没有上传文件,然后让他/她返回主页。
有没有一种方法可以检查用户是否没有上传文件并且没有转到另一个页面只是在该主页的屏幕中间显示一张带有消息的图片?
不仅仅是字符串消息,而是带有消息的图片。
也许 javascript 是答案,但我对 javascript 一无所知。
在此先感谢您的帮助。
最佳答案
有两种方式:
1) 如果您像现在一样在服务器端进行验证。看起来你做得对,但如果你处理 POST 数据,你应该使用重定向而不是渲染:
if len(request.FILES) != 0:
data = request.FILES['some_file']
...do some work...
else:
return redirect('/nofile/' {'foo': bar})
2) 如果你想要客户端验证。然后你必须阻止javascript的默认提交操作并检查文件长度是否等于0。你可以检查this提问或使用这个 jQuery 片段:
$('form').submit(function(event){
validated = true;
if ($('#some_file_input').get(0).files.length === 0) {
validated = false;
console.log("No files selected.");
// Or some div with image showing
}
if (validated != true) {
event.preventDefault();
}
});
关于python - Django/Python - 检查用户是否上传文件 - 如果没有,显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32608513/