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()