python - Django/Python - 检查用户是否上传文件 - 如果没有,显示图像

标签 python django

我有一个输入标签,用户必须在其中上传文件。现在,如果用户没有上传任何东西,我会在主视图中执行此操作:

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/

相关文章:

python - 正则表达式:不要将以换行符 (\n) 结尾的字符串与行尾 anchor ($) 匹配

python - 创建一个递归函数,获取整数列表中所有可能子集的总和

python - 使用python angularjs在mysql数据库中插入特殊字符

python - 如何使用 Django 的 ORM 进行过滤聚合

python - 诗歌在 macOS 12 上的哪里存储 virtualenvs?

python - 即使使用 ui.WebDriverWait() chrome selenium python 后也会出现随机 TimeoutException

python - Django 1.8 错误的 PyDev 错误

django - 在 Django 管理中使内联成为条件

python - 空 request.POST 升级到 Django 1.3 后

css - Django在css文件中使用背景图片的方法