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获取某年中每个月的第一天和最后一天
Dec 15 Python
python使用tkinter实现简单计算器
Jan 30 Python
基于python绘制科赫雪花
Jun 22 Python
pyqt5 使用cv2 显示图片,摄像头的实例
Jun 27 Python
python实现的发邮件功能示例
Sep 11 Python
Python原始套接字编程实例解析
Jan 29 Python
Django用户身份验证完成示例代码
Apr 03 Python
Python sql注入 过滤字符串的非法字符实例
Apr 03 Python
Keras之自定义损失(loss)函数用法说明
Jun 10 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
python 绘制国旗的示例
Sep 27 Python
Pygame Draw绘图函数的具体使用
Nov 17 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 cron中的批处理
2008/09/16 PHP
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
PHP 读取文本文件内容并分页显示
2016/01/02 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
2017/07/09 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
PHP7 windows支持
2021/03/09 PHP
鼠标经过的文本框textbox变色
2009/05/21 Javascript
javascript中返回顶部按钮的实现
2015/05/05 Javascript
jQuery+ajax实现实用的点赞插件代码
2016/07/06 Javascript
AngularJS 表达式详细讲解及实例代码
2016/07/26 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
javascript数组去重常用方法实例分析
2017/04/11 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
微信小程序全局变量功能与用法详解
2019/01/22 Javascript
[36:54]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
django接入新浪微博OAuth的方法
2015/06/29 Python
Python 3中print函数的使用方法总结
2017/08/08 Python
python消费kafka数据批量插入到es的方法
2018/12/27 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
python suds访问webservice服务实现
2020/06/26 Python
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
城建学院毕业生自荐信
2014/01/31 职场文书
工程合作意向书范本
2015/05/09 职场文书
科技活动总结范文
2015/05/11 职场文书
婚庆司仪开场白
2015/05/29 职场文书
陈斌强事迹观后感
2015/06/17 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
2021/04/24 Python