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 yield 小结和实例
Apr 25 Python
Python字符串格式化
Jun 15 Python
Python中for循环和while循环的基本使用方法
Aug 21 Python
django之session与分页(实例讲解)
Nov 13 Python
django利用request id便于定位及给日志加上request_id
Aug 26 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
Pycharm+Scrapy安装并且初始化项目的方法
Jan 15 Python
由面试题加深对Django的认识理解
Jul 19 Python
Python 词典(Dict) 加载与保存示例
Dec 06 Python
django form和field具体方法和属性说明
Jul 09 Python
Python3爬虫中pyspider的安装步骤
Jul 29 Python
PyQt5 QThread倒计时功能的实现代码
Apr 02 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中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
php懒人函数 自动添加数据
2011/06/28 PHP
php中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
2016/11/16 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
2017/01/13 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
yii2实现Ueditor百度编辑器的示例代码
2018/11/02 PHP
jquery 学习之二 属性(html()与html(val))
2010/11/25 Javascript
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
JS打印gridview实现原理及代码
2013/02/05 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
Bootstrap 粘页脚效果
2016/03/28 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
2016/06/01 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
让axios发送表单请求形式的键值对post数据的实例
2018/08/11 Javascript
Vue表单及表单绑定方法
2018/09/04 Javascript
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
[02:28]DOTA2 2015国际邀请赛中国区预选赛首日现场百态
2015/05/26 DOTA
Python异常学习笔记
2015/02/03 Python
在Python中marshal对象序列化的相关知识
2015/07/01 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
python移位运算的实现
2019/07/15 Python
解决django服务器重启端口被占用的问题
2019/07/26 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
python实现猜单词游戏
2020/05/22 Python
Python如何定义有可选参数的元类
2020/07/31 Python
基于Python中Remove函数的用法讨论
2020/12/11 Python
美国第一香水网站:Perfume.com
2017/01/23 全球购物
建筑实习自我鉴定
2013/10/18 职场文书
个人充满哲理的自我评价
2014/02/20 职场文书
三八妇女节活动主持词
2014/03/17 职场文书
教师节活动主持词
2014/04/02 职场文书
培训心得体会怎么写
2016/01/25 职场文书
Redis源码阅读:Redis字符串SDS详解
2021/07/15 Redis