0
我正在使用Django 1.10.1。Django Admin和ImageField尺寸限制
我有一個ImageField模型,並且當有人試圖在Django Admin站點上傳一個大於900x900px的文件時,我想觸發一個錯誤。
這樣做最簡單的方法是什麼?我寧願在Model類中這樣做,因爲它永遠不應該被允許保存更大的圖像,但是我已經在某處讀過它是不可能的,因爲只要數據沒有保存,就無法訪問圖像數據。
我正在使用Django 1.10.1。Django Admin和ImageField尺寸限制
我有一個ImageField模型,並且當有人試圖在Django Admin站點上傳一個大於900x900px的文件時,我想觸發一個錯誤。
這樣做最簡單的方法是什麼?我寧願在Model類中這樣做,因爲它永遠不應該被允許保存更大的圖像,但是我已經在某處讀過它是不可能的,因爲只要數據沒有保存,就無法訪問圖像數據。
您可以覆蓋您的ModelAdmin
類的表單並驗證圖像尺寸。
from django.contrib import admin
from django import forms
from django.core.files.images import get_image_dimensions
from .models import ModelWithImageField
class ModelWithImageFieldForm(forms.ModelForm):
class Meta:
model = ModelWithImageField
fields = '__all__'
def clean_photo(self):
photo = self.cleaned_data["photo"]
width, height = get_image_dimensions(photo.file)
if width < 900 or height < 900:
raise form.ValidationError("Improper size.")
return photo
@admin.register(models.ModelWithImageField)
class ModelWithImageFieldAdmin(admin.ModelAdmin):
form = ModelWithImageFieldForm