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实现矩阵乘法的方法
Jun 28 Python
Python守护进程和脚本单例运行详解
Jan 06 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
Oct 11 Python
python利用百度AI实现文字识别功能
Nov 27 Python
Python简单I/O操作示例
Mar 18 Python
python django框架中使用FastDFS分布式文件系统的安装方法
Jun 10 Python
Python 函数list&read&seek详解
Aug 28 Python
Python List列表对象内置方法实例详解
Oct 22 Python
Python3 集合set入门基础
Feb 10 Python
Python threading.local代码实例及原理解析
Mar 16 Python
Python实现一个简单的毕业生信息管理系统的示例代码
Jun 08 Python
Python中openpyxl实现vlookup函数的实例
Oct 28 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中全局变量global和$GLOBALS[]的区别分析
2012/08/06 PHP
PHP优于Node.js的五大理由分享
2012/09/15 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
浅谈PHP的反射API
2017/02/26 PHP
javascript引用对象的方法代码
2007/08/13 Javascript
javascript hashtable 修正版 下载
2010/12/30 Javascript
js判断浏览器类型为ie6时不执行
2014/06/15 Javascript
jQuery实现仿腾讯微博滑出效果报告每日天气的方法
2015/05/11 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
JS正则表达式修饰符中multiline(/m)用法分析
2016/12/27 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
jQuery 实现倒计时天,时,分,秒功能
2018/07/31 jQuery
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
js神秘的电报密码 哈弗曼编码实现
2019/09/10 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
Vue+Java+Base64实现条码解析的示例
2020/09/23 Javascript
微信小程序实现分页加载效果
2020/11/19 Javascript
python实现下载指定网址所有图片的方法
2015/08/08 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
python 实现多维数组(array)排序
2020/02/28 Python
python实现图片素描效果
2020/09/26 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
文言文形式的学生求职信
2013/12/03 职场文书
全民健身日活动方案
2014/01/29 职场文书
大学生家政服务项目创业计划书
2014/01/30 职场文书
迟到检讨书5000字
2014/01/31 职场文书
初一学生评语大全
2014/04/24 职场文书
预防传染病方案
2014/06/14 职场文书
验房委托书
2014/08/30 职场文书
文明礼仪倡议书
2015/04/28 职场文书
学生犯错保证书
2015/05/09 职场文书
24句精辟的现实社会语录,句句扎心,道尽人性
2019/08/29 职场文书
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS