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 基础学习第二弹 类属性和实例属性
Aug 27 Python
Python实现115网盘自动下载的方法
Sep 30 Python
python下实现二叉堆以及堆排序的示例
Sep 29 Python
python队列通信:rabbitMQ的使用(实例讲解)
Dec 22 Python
numpy找出array中的最大值,最小值实例
Apr 03 Python
python定时检测无响应进程并重启的实例代码
Apr 22 Python
python 多进程共享全局变量之Manager()详解
Aug 15 Python
爬虫代理池Python3WebSpider源代码测试过程解析
Dec 20 Python
如何解决tensorflow恢复模型的特定值时出错
Feb 06 Python
Python图像阈值化处理及算法比对实例解析
Jun 19 Python
python 常用的异步框架汇总整理
Jun 18 Python
python可视化大屏库big_screen示例详解
Nov 23 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
在“咖啡之国”感受咖啡文化
2021/03/03 咖啡文化
apache php模块整合操作指南
2012/11/16 PHP
php遍历目录方法小结
2015/03/10 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
用js 让图片在 div或dl里 居中,底部对齐
2008/01/21 Javascript
jQuery html()等方法介绍
2009/11/18 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
利用jQuery实现可以编辑的表格
2014/05/26 Javascript
JS弹出窗口的运用与技巧大全
2016/11/01 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
微信小程序组件 contact-button(客服会话按钮)详解及实例代码
2017/01/10 Javascript
用原生js做单页应用
2017/01/17 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
2017/03/30 Javascript
jquery实现简单实用的轮播器
2017/05/23 jQuery
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
2016/09/18 Python
Django验证码的生成与使用示例
2017/05/20 Python
python 列表转为字典的两个小方法(小结)
2019/06/28 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
python中封包建立过程实例
2021/02/18 Python
真正的英国宝藏:Mappin & Webb
2019/05/05 全球购物
Bed Bath & Beyond加拿大官网:购买床上用品、浴巾、厨房电器等
2019/10/04 全球购物
锐步英国官网:Reebok英国
2019/11/29 全球购物
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
中专毕业自我鉴定
2013/10/16 职场文书
应届生护士求职信
2013/11/01 职场文书
学校文明单位申报材料
2014/05/06 职场文书
细节决定成败演讲稿
2014/05/12 职场文书
2014年学习部工作总结
2014/11/12 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
婚庆答谢词大全
2015/09/29 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书
opencv检测动态物体的实现
2021/07/21 Python