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中使用SAX解析xml实例
Nov 21 Python
Python自动化构建工具scons使用入门笔记
Mar 10 Python
python实现的系统实用log类实例
Jun 30 Python
Python随机数用法实例详解【基于random模块】
Apr 18 Python
Python中pandas dataframe删除一行或一列:drop函数详解
Jul 03 Python
python用插值法绘制平滑曲线
Feb 19 Python
Python嵌套式数据结构实例浅析
Mar 05 Python
Django--权限Permissions的例子
Aug 28 Python
tensorflow常用函数API介绍
Apr 19 Python
如何基于python实现不邻接植花
May 01 Python
Python切片列表字符串如何实现切换
Aug 06 Python
python实现取余操作的简单实例
Aug 16 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 MemCached高级缓存配置图文教程
2010/08/05 PHP
域名和cookie问题(域名后缀)
2012/10/10 PHP
浅析PHP的静态成员函数效率更高的原因
2014/06/13 PHP
PHP、Java des加密解密实例
2015/04/27 PHP
php实现通过ftp上传文件
2015/06/19 PHP
[原创]php实现 data url的图片生成与保存
2016/12/04 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
JS 排序输出实现table行号自增前端动态生成的tr
2014/08/13 Javascript
jquery.validate使用详解
2016/06/02 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
JavaScript无操作后屏保功能的实现方法
2017/07/04 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
layer弹出层自定义提交取消按钮的例子
2019/09/10 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
详解用js代码触发dom事件的实现方案
2020/06/10 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
Vuex实现购物车小功能
2020/08/17 Javascript
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
python处理csv数据的方法
2015/03/11 Python
Python下线程之间的共享和释放示例
2015/05/04 Python
python用plt画图时,cmp设置方法
2018/12/13 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
python3 简单实现组合设计模式
2020/07/02 Python
Python绘制K线图之可视化神器pyecharts的使用
2021/03/02 Python
CSS3实现银灰色动画效果的导航菜单代码
2015/09/01 HTML / CSS
澳大利亚时尚前卫设计师珠宝在线:Amber Sceats
2017/10/04 全球购物
Swisse官方海外旗舰店:澳大利亚销量领先,自然健康品牌
2017/12/15 全球购物
英国最专业的健身器材供应商之一:Best Gym Equipment
2017/12/22 全球购物
法学毕业生自我鉴定
2014/01/31 职场文书
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
公司募捐倡议书
2014/05/14 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
2014年党小组工作总结
2014/12/20 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
详解Python常用的魔法方法
2021/06/03 Python
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL