DjangoのModelForm
内において、clean_tmpvideo
というvideoフィールドのクリーンメソッドを定義しました。コードは以下の通りです。
python
1 def clean_tmpvideo(self): 2 tmpvideo = self.cleaned_data['tmpvideo'] 3 if tmpvideo: 4 if tmpvideo.size > 5242880: 5 print("sizeをが大きすぎます") 6 print("sizeはこれです{}".format(tmpvideo.size)) 7 raise forms.ValidationError(_("動画のサイズが大きすぎます。動画は5MB以下にしなければいけません。")) 8 print("サイズは大丈夫です") 9 print("sizeはこれです{}".format(tmpvideo.size)) 10 return tmpvideo
これは開発環境ではうまく機能し、大きいファイルは送信したとたんにバリデーションエラーを出されて元のページに戻されていたのですが、本番環境では長い時間アップロード処理を行った後、おそらくはsettings.py
内の最大サイズ制限により送信に失敗します。つまりバリデーションの段階で防ぐことができていません。
考えられる原因などあるでしょうか?
ちなみに本番環境では動画をS3にアップロードするように設定しており、データベースはPostgreSQLに変えています。このあたりが関係しているのかもしれません。
回答1件
あなたの回答
tips
プレビュー