次のように、クリーンメソッドでモデルにいくつかの検証を記述しています。
class MyModel(models.Model):
foo = ....
bar = ...
def clean(self):
(logic that should be applied to all instances of MyModels to validate)
そして、このロジック (ModelForm.clean ではなく) を使用して、MyModel のモデル フォームを検証したいと考えています。私はそれが次のようになると予想しました:
def my_view(request):
...
if request.method == 'POST':
form = MyModelForm(request.POST)
try:
# validate
form.instance.clean()
form.instance.save()
except ValidationError as e:
validation_error = e # ???
しかし、これはうまくいきません。やりたい理由は2つ
- 検証をすべての MyModels に適用したいので、これが最も DRY な方法のようです。
- モデル ValidationError のテキストをユーザーに表示したいと考えています。
私はあちこちを見回しましたが、この方法で検証を行う方法の例や説明は見つかりませんでした。私が見落としているより良い方法はありますか?