10
DjangoのModel.validate_uniqueを上書きする正しい方法は何ですか?私はそれをオーバーライドしてValidationError
自分を上げてみましたが、このエラーを得た:Django:Model.validate_uniqueをオーバーライド
AttributeError: 'ValidationError' object has no attribute 'message_dict'
DjangoのModel.validate_uniqueを上書きする正しい方法は何ですか?私はそれをオーバーライドしてValidationError
自分を上げてみましたが、このエラーを得た:Django:Model.validate_uniqueをオーバーライド
AttributeError: 'ValidationError' object has no attribute 'message_dict'
DjangoはあなたによりvalidationErrorsではなく、文字列の辞書でインスタンス化されることを想定してい:
from django.db.models import Model
from django.core.exceptions import ValidationError
from django.core.exceptions import NON_FIELD_ERRORS
class Person(Model):
...
def validate_unique(self, *args, **kwargs):
super(Person, self).validate_unique(*args, **kwargs)
if not self.id:
if self.__class__.objects.filter(...).exists():
raise ValidationError(
{
NON_FIELD_ERRORS: [
'Person with same ... already exists.',
],
}
)