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使用any判断一个对象是否为空的方法
Nov 19 Python
Python中用于转换字母为小写的lower()方法使用简介
May 19 Python
python去掉行尾的换行符方法
Jan 04 Python
python实现发送邮件及附件功能
Mar 02 Python
Python实现字符串逆序输出功能示例
Jun 24 Python
Python数据类型之List列表实例详解
May 08 Python
python多环境切换及pyenv使用过程详解
Sep 27 Python
基于python实现蓝牙通信代码实例
Nov 19 Python
PythonPC客户端自动化实现原理(pywinauto)
May 28 Python
基于Python模拟浏览器发送http请求
Nov 06 Python
Python: glob匹配文件的操作
Dec 11 Python
Python中rapidjson参数校验实现
Jul 25 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
在WIN98下以apache模块方式安装php
2006/10/09 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
PHP中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
PHP发送短信代码分享
2015/08/11 PHP
PHP中字符与字节的区别及字符串与字节转换示例
2016/10/15 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
JQuery 学习笔记 选择器之五
2009/07/23 Javascript
jquery select动态加载选择(兼容各种浏览器)
2013/02/01 Javascript
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
javascript实现在网页任意处点左键弹出隐藏菜单的方法
2015/05/13 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
原生javascript实现图片无缝滚动效果
2016/02/12 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
2016/02/15 Javascript
JS集成fckeditor及判断内容是否为空的方法
2016/05/27 Javascript
nodeJS删除文件方法示例
2016/12/25 NodeJs
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
python简单的函数定义和用法实例
2015/05/07 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
python实现UDP协议下的文件传输
2020/03/20 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
python从Oracle读取数据生成图表
2020/10/14 Python
浅谈Html5中视频 音频标签 进度条的问题
2016/07/26 HTML / CSS
泰国国际航空公司官网:Thai Airways International
2019/12/04 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
智能室内花园:Click & Grow
2021/01/29 全球购物
函数指针的定义是什么
2016/08/14 面试题
小学新学期寄语
2014/04/02 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers