Django 모델의 특정 필드에 대한 자체 검증 루틴을 정의하려고합니다. 오류 메시지가 관리자 양식에 표시되기를 원하지만 자체 파이썬 코드로 엔티티를 저장하는 경우에도 동일한 유효성 검사가 필요합니다. DRY 원칙을 위반하지 않고이를 수행 할 수있는 방법이 있습니까?모델 및 관리자의 Django 필드 유효성 검사?
10
A
답변
8
개별 필드의 유효성을 검사하려면 write a validator을 입력하고 모델 필드에 추가하십시오.
모델의 full_clean
메서드가 호출 될 때마다 유효성 검사기가 필드에 대해 실행됩니다. Django 관리자를 포함하여 모델 양식이 검증 될 때마다 실행되지만 모델 인스턴스가 저장 될 때 자동으로 실행되지 않으므로 full_clean
을 수동으로 Python 코드로 호출해야합니다. 당신이 모델이 저장 될 때마다 실행되도록 검증을 강제로 원하는 경우
m = MyModel(x=20)
m.full_clean() # may raise ValidationError
m.save()
, 당신은 저장 메소드를 오버라이드 (override) 할 수 거기 full_clean
를 호출합니다. 모델 폼과 django 관리자를 사용할 때 유효성 검사가 두 번 실행됩니다.