Django Admin实现上传图片校验功能


Posted in Python onMarch 06, 2016

 Django 为未来的开发人员提供了许多功能:一个成熟的标准库,一个活跃的用户社区,以及 Python 语言的所有好处。虽然其他 Web 框架也声称能提供同样的内容,但 Django 的独特之处在于它内置了管理应用程序 —— admin。

admin 提供了开箱即用的高级 Create-Read-Update-Delete (CRUD) 功能,减少了重复工作所需的时间。这是许多 Web 应用程序的关键所在,程序员可以在开发时快速浏览他们的数据库模型;非技术最终用户可以在部署时使用 admin 添加和编辑站点内容。

我的 models里有个ImageField字段,用来保存用户头像,希望通过Django Admin上传时校验头像大小,如果太大就报错,并且不保存。

网上有不少方法,有的通过第三方软件实现,有的通过自己写form验证,我觉得太复杂了,本身的要求也不高,只想要最简单的方法。

下面的方法是通过覆盖 admin.ModelAdmin 的 save_model()来校验图片大小,如果图片大于20K,就报错并且不保存:

from django.contrib import messages
class YourModeAdmin(admin.ModelAdmin):
...
def save_model(self, request, obj, form, change):
#不保存大图片
if obj.picture and obj.picture.size > 20480:
messages.set_level(request, messages.ERROR)
messages.error(request, 'The picture\'s too large. It\'s supposed smaller than 20K.')
else:
obj.save()

最后show一下实现好的django网站,感谢 andrew liu 的在线教程:

Django Admin实现上传图片校验功能

以上内容给大家介绍了Django Admin实现上传图片校验功能的相关知识,希望对大家以上帮助!

Python 相关文章推荐
Python实现的生成自我描述脚本分享(很有意思的程序)
Jul 18 Python
python嵌套函数使用外部函数变量的方法(Python2和Python3)
Jan 31 Python
python logging 日志轮转文件不删除问题的解决方法
Aug 02 Python
tensorflow输出权重值和偏差的方法
Feb 10 Python
python实现log日志的示例代码
Apr 28 Python
Python连接Redis的基本配置方法
Sep 13 Python
python机器人运动范围问题的解答
Apr 29 Python
Python 如何优雅的将数字转化为时间格式的方法
Sep 26 Python
Python3安装pip工具的详细步骤
Oct 14 Python
Python图像处理库PIL的ImageFilter模块使用介绍
Feb 26 Python
pytorch 如何使用float64训练
May 24 Python
python计算列表元素与乘积详情
Aug 05 Python
python如何通过protobuf实现rpc
Mar 06 #Python
使用Python保存网页上的图片或者保存页面为截图
Mar 05 #Python
Python发送form-data请求及拼接form-data内容的方法
Mar 05 #Python
Python多线程爬虫简单示例
Mar 04 #Python
使用Python来开发Markdown脚本扩展的实例分享
Mar 04 #Python
使用py2exe在Windows下将Python程序转为exe文件
Mar 04 #Python
用Python编写简单的微博爬虫
Mar 04 #Python
You might like
[原创]PHP中通过ADODB库实现调用Access数据库之修正版本
2006/12/31 PHP
php设计模式 Singleton(单例模式)
2011/06/26 PHP
第四章 php数学运算
2011/12/30 PHP
PHP运行模式的深入理解
2013/06/03 PHP
ThinkPHP模版引擎之变量输出详解
2014/12/05 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
PHP常用函数之获取汉字首字母功能示例
2019/10/21 PHP
多个iframe自动调整大小的问题
2006/09/18 Javascript
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
Javascript 判断是否存在函数的方法
2013/01/03 Javascript
给文字加上着重号的JS代码
2013/11/12 Javascript
input输入框鼠标焦点提示信息
2015/03/17 Javascript
ECMAScript6中Map/WeakMap详解
2015/06/12 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
vue小白入门教程
2018/04/02 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
[55:42]VG vs VGJ.T 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
[01:20]DOTA2更新全新英雄 天涯墨客现已加入游戏
2018/08/25 DOTA
[01:09:01]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第一场 10.28
2020/10/28 DOTA
Python实例一个类背后发生了什么
2016/02/09 Python
利用Anaconda简单安装scrapy框架的方法
2018/06/13 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
python中的反斜杠问题深入讲解
2019/08/12 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
基于python的列表list和集合set操作
2019/11/24 Python
Python实现分数序列求和
2020/02/25 Python
在线学习西班牙语、法语或其他语言:Babbel.com
2018/02/07 全球购物
全球性的在线商店:Vogca
2019/05/10 全球购物
英智兴达软件测试笔试题
2016/10/12 面试题
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
小学生优秀评语
2014/12/29 职场文书
校长师德表现自我评价
2015/03/05 职场文书
2015年煤矿工作总结
2015/04/28 职场文书
不同意离婚代理词
2015/05/23 职场文书