Django Admin实现上传图片校验功能
作者:hahp 时间:2021-12-12 02:27:03
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,上传,图片
0
投稿
猜你喜欢
Go语言Handler详细说明
2024-04-27 15:32:50
Python使用Turtle模块绘制五星红旗代码示例
2022-03-02 16:17:19
Pygame游戏开发之太空射击实战敌人精灵篇
2023-09-15 20:03:52
javascript编写贪吃蛇游戏
2024-04-22 22:31:00
Golang 实现复制文件夹同时复制文件
2024-02-09 10:57:26
MySQL GTID主备不一致的修复方案
2024-01-15 21:26:16
举例讲解Python中的Null模式与桥接模式编程
2021-10-05 09:06:34
简评:JavaScript将成Silverlight的最大对手?
2008-10-17 10:29:00
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2024-05-11 09:19:05
JS定时器实例
2024-04-29 13:25:21
ansible作为python模块库使用的方法实例
2022-07-15 08:01:02
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2022-11-13 00:12:24
WxPython建立批量录入框窗口
2023-11-18 15:47:00
在python中list作函数形参,防止被实参修改的实现方法
2022-11-15 19:27:25
python中requests库+xpath+lxml简单使用
2021-04-08 05:24:16
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2024-02-24 03:33:08
详解numpy.ndarray.reshape()函数的参数问题
2022-02-06 20:22:57
Python导入模块包原理及相关注意事项
2023-01-26 04:46:31
Python如何使用pymongo连接MongoDB数据库并进行相关操作
2023-05-12 01:21:49
MySQL中常见的八种SQL错误用法示例
2024-01-25 18:40:00