Django Admin實現上傳圖片校正功能

來源:互聯網
上載者:User
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實現上傳圖片校正功能的相關知識,希望對大家以上協助!

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.