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 messagesclass 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實現上傳圖片校驗功能的相關知識,希望對大家以上幫助!