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实现将一个大文件按段落分隔为多个小文件的简单操作方法
Apr 17 Python
详解Python给照片换底色(蓝底换红底)
Mar 22 Python
Python matplotlib画图与中文设置操作实例分析
Apr 23 Python
ORM Django 终端打印 SQL 语句实现解析
Aug 09 Python
解决Django后台ManyToManyField显示成Object的问题
Aug 09 Python
python中的函数递归和迭代原理解析
Nov 14 Python
Python异步编程之协程任务的调度操作实例分析
Feb 01 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
Apr 13 Python
浅谈Python中re.match()和re.search()的使用及区别
Apr 14 Python
Python 读取位于包中的数据文件
Aug 07 Python
Python实现区域填充的示例代码
Feb 03 Python
Python经常使用的一些内置函数
Apr 11 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之第十天
2006/10/09 PHP
解析PHP 使用curl提交json格式数据
2013/06/29 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
php中JSON的使用方法
2015/04/30 PHP
Yii2中cookie用法示例分析
2016/07/18 PHP
php 微信开发获取用户信息如何实现
2016/12/13 PHP
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
JQuery以JSON方式提交数据到服务端示例代码
2014/05/05 Javascript
HTML,CSS,JavaScript速查表推荐
2014/12/02 Javascript
Javascript获取数组中的最大值和最小值的方法汇总
2016/01/01 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
2016/06/14 Javascript
jQuery实现右下角可缩放大小的层完整实例
2016/06/20 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
原生JS实现图片轮播效果
2016/12/26 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
Vue计算属性的学习笔记
2017/03/22 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
react 国际化的实现代码示例
2018/09/14 Javascript
20道JS原理题助你面试一臂之力(必看)
2019/07/22 Javascript
微信小程序实现轨迹回放的示例代码
2019/12/13 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python中MySQLdb模块用法实例
2014/11/10 Python
Python中使用urllib2模块编写爬虫的简单上手示例
2016/01/20 Python
python实现中文转换url编码的方法
2016/06/14 Python
python 全文检索引擎详解
2017/04/25 Python
python enumerate内置函数用法总结
2020/01/07 Python
html5 canvas的绘制文本自动换行的示例代码
2018/09/17 HTML / CSS
商务会议邀请函
2014/01/09 职场文书
高中考试作弊检讨书
2014/01/14 职场文书
先进集体获奖感言
2014/02/13 职场文书
初中学生期末评语
2014/04/24 职场文书
网吧员工管理制度
2015/08/05 职场文书