6

ValidationExceptiondjangoのモデルメソッドでバインドされたフィールドを上げる方法はclean?

from django.core.exceptions import ValidationError

def clean(self):
    if self.title:
        raise ValidationError({'title': 'not ok'})

上記は、エラーをtitleフィールド (フォームを使用する場合) に追加するのではなく、フィールド以外のエラー ( __all__) に追加します。

self._errors['title'] = self.error_class([msg])フォーム ( )内で行う方法は知っていますが、モデルメソッドself._errors内には存在しません。clean

4

2 に答える 2

2

Modelclean メソッドは を発生させることのみを目的としていますが、メソッドnon field errorsを作成することでフィールドエラーを発生させることができますclean_title

def clean(self):
    """
    Hook for doing any extra model-wide validation after clean() has been
    called on every field by self.clean_fields. Any ValidationError raised
    by this method will not be associated with a particular field; it will
    have a special-case association with the field defined by NON_FIELD_ERRORS.
    """
于 2013-05-19T11:41:33.793 に答える