Django Admin实现上传图片校验功能
2016-03-06 00:00
881 查看
Django 为未来的开发人员提供了许多功能:一个成熟的标准库,一个活跃的用户社区,以及 Python 语言的所有好处。虽然其他 Web 框架也声称能提供同样的内容,但 Django 的独特之处在于它内置了管理应用程序 ―― admin。
admin 提供了开箱即用的高级 Create-Read-Update-Delete (CRUD) 功能,减少了重复工作所需的时间。这是许多 Web 应用程序的关键所在,程序员可以在开发时快速浏览他们的数据库模型;非技术最终用户可以在部署时使用 admin 添加和编辑站点内容。
我的 models里有个ImageField字段,用来保存用户头像,希望通过Django Admin上传时校验头像大小,如果太大就报错,并且不保存。
网上有不少方法,有的通过第三方软件实现,有的通过自己写form验证,我觉得太复杂了,本身的要求也不高,只想要最简单的方法。
下面的方法是通过覆盖 admin.ModelAdmin 的 save_model()来校验图片大小,如果图片大于20K,就报错并且不保存:
最后show一下实现好的django网站,感谢 andrew liu 的在线教程:
以上内容给大家介绍了Django Admin实现上传图片校验功能的相关知识,希望对大家以上帮助!
使用grappelli为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-suit为django 1.7 admin后台添加模板使用grappelli为django admin后台添加模板
相关文章推荐
- 编写GO的WEB开发框架 (五): 请求参数封装
- [HDU 3635]Dragon Balls[并查集][路径压缩]
- 1030 Discovering Gold(水DP)
- go学习资料汇总
- Extended Eucild's algorithm
- 详解Google Authenticator工作原理
- apt-get update 失败
- Django学习笔记(4)---ManyToMany 添加、删除关联、查询 - Linktime的个人空间 - 开源中国社区
- CF 615 E Hexagons(找规律)
- Django学习笔记(1)——安装
- uva11054 - Wine trading in Gergovia
- HDU 3966 Aragorn's Story 树链剖分+BIT区间修改/单点询问
- Codeforces Round #344 (Div. 2) A 题题解 (暴力)
- pymongo性能测试脚本
- GoLang 文件写入方式效率对比
- 编写GO的WEB开发框架 (四): 支持RESTful
- 编译goldfish2.6.9遇见的问题
- Ubuntu 下搭建django开发环境
- 使用指定的Action,Category调用系统Activity
- (EM算法)The EM Algorithm