Вот еще один вариант, который я не видел во всех вариациях этого вопроса в stackoverflow: используйте собственный валидатор в ваших моделях.Если вы используете эту технику и ModelForm в forms.py, то это должно быть все, что вам нужно.
models.py
from django.core.exceptions import ValidationError
class Product(models.Model):
def validate_image(fieldfile_obj):
filesize = fieldfile_obj.file.size
megabyte_limit = 5.0
if filesize > megabyte_limit*1024*1024:
raise ValidationError("Max file size is %sMB" % str(megabyte_limit))
image = models.ImageField(upload_to="/a/b/c/", validators=[validate_image])