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 MD5文件生成码
Jan 12 Python
对numpy中的数组条件筛选功能详解
Jul 02 Python
对Tensorflow中的变量初始化函数详解
Jul 27 Python
python+flask实现API的方法
Nov 21 Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 Python
简单了解python单例模式的几种写法
Jul 01 Python
Python数据分析pandas模块用法实例详解
Nov 20 Python
pandas实现将日期转换成timestamp
Dec 07 Python
python 实现按对象传值
Dec 26 Python
python、PyTorch图像读取与numpy转换实例
Jan 13 Python
python实现批量命名照片
Jun 18 Python
Python内置函数property()如何使用
Sep 01 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 checkdate、getdate等日期时间函数操作详解
2010/03/11 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
理解JavaScript的caller,callee,call,apply
2009/04/28 Javascript
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
js实现div闪烁原理及实现代码
2014/06/24 Javascript
js实现完美兼容各大浏览器的人民币大小写相互转换
2015/10/29 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
Vue-cropper 图片裁剪的基本原理及思路讲解
2018/04/17 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
2019/09/06 Javascript
微信小程序自定义胶囊样式
2020/12/27 Javascript
pytyon 带有重复的全排列
2013/08/13 Python
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
python贪吃蛇游戏代码
2020/04/18 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
python 两个数据库postgresql对比
2019/10/21 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
2019/11/11 Python
python中urllib.request和requests的使用及区别详解
2020/05/05 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
详解HTML5中的拖放事件(Drag 和 drop)
2016/11/14 HTML / CSS
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
Columbia Sportswear法国官网:全球户外品牌
2020/09/25 全球购物
2014年幼儿园园务工作总结
2014/12/05 职场文书
小学教师自我评价
2015/03/04 职场文书
怒海潜将观后感
2015/06/11 职场文书
2015年度优秀员工获奖感言
2015/07/31 职场文书
Python使用MapReduce进行简单的销售统计
2022/04/22 Python
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript