ファイルが設定値よりも大きいかどうかをチェックする小さな関数を書きました。しかし、どういうわけか機能していません。私は 50 MB の制限を設定しましたが、100 MB のデータをアップロードしようとしても、アップロードできます。これは私の forms.py クラスと関数です
from django.template.defaultfilters import filesizeformat
class ScribbleSaveForm(forms.Form):
title=forms.CharField(
label=u'Title',
required=False,
widget=forms.TextInput(attrs={'size':120})
)
media=forms.FileField(
label=u'add file',
required=False,
widget=forms.FileInput()
)
body=forms.CharField(
label=u'description',
widget=forms.Textarea()
)
tags=forms.CharField(
label=u'Tags',
required=False,
widget=forms.TextInput(attrs={'size':64})
)
def file_size(self):
media=self.cleaned_data.get('media',False)
if media:
if media._size > 50*1024*1024 :
raise forms.ValidationError('Please keep filesize under 50MB.')
return media
else:
raise forms.ValidationError('Could not read uploaded file.')