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爬虫之xpath的基本使用详解
Apr 18 Python
利用arcgis的python读取要素的X,Y方法
Dec 22 Python
Python实现查找字符串数组最长公共前缀示例
Mar 27 Python
pytorch numpy list类型之间的相互转换实例
Aug 18 Python
tensorflow模型继续训练 fineturn实例
Jan 21 Python
python 回溯法模板详解
Feb 26 Python
python实现用户名密码校验
Mar 18 Python
在python中利用pycharm自定义代码块教程(三步搞定)
Apr 15 Python
python不到50行代码完成了多张excel合并的实现示例
May 28 Python
Selenium alert 弹窗处理的示例代码
Aug 06 Python
13个Pandas实用技巧,助你提高开发效率
Aug 19 Python
Python matplotlib多个子图绘制整合
Apr 13 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/12/06 PHP
在命令行下运行PHP脚本[带参数]的方法
2010/01/22 PHP
php获取本地图片文件并生成xml文件输出具体思路
2013/04/27 PHP
既简单又安全的PHP验证码 附调用方法
2016/06/02 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
html下载本地
2006/06/19 Javascript
window.open的功能全解析
2006/10/10 Javascript
JavaScript的面向对象(二)
2006/11/09 Javascript
iis6+javascript Add an Extension File
2007/06/13 Javascript
prototype与jquery下Ajax实现的差别
2009/09/13 Javascript
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
基于jQuery实现响应式圆形图片轮播特效
2015/11/25 Javascript
JS弹出窗口插件zDialog简单用法示例
2016/06/12 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
JavaScript面试题大全(推荐)
2016/09/22 Javascript
MvcPager分页控件 适用于Bootstrap
2017/06/03 Javascript
js数组实现权重概率分配
2017/09/12 Javascript
Django中使用jquery的ajax进行数据交互的实例代码
2017/10/15 jQuery
jQuery EasyUI window窗口使用实例代码
2017/12/25 jQuery
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
深入理解Antd-Select组件的用法
2020/02/25 Javascript
JS画布动态实现黑客帝国背景效果
2020/11/08 Javascript
Python读取英文文件并记录每个单词出现次数后降序输出示例
2018/06/28 Python
python同时遍历两个list用法说明
2020/05/02 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
领导干部考察材料
2014/02/08 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
小学生田径运动会广播稿
2014/09/11 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
群众路线剖析材料(四风问题)
2014/10/08 职场文书
走进科学观后感
2015/06/18 职场文书
怎样评估创业计划书是否有可行性?
2019/08/07 职场文书
浅谈Python魔法方法
2021/06/28 Java/Android
拙作再改《我的收音机情缘》
2022/04/05 无线电
python实现简单的三子棋游戏
2022/04/28 Python