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