3
내 질문에 조용하게 간단합니다. models.Model에서 상속 한 내 응용 프로그램 모델에 클래스가 있습니다. django-admin의 clean_fields 메소드를 재정의하여 양식에 대한 사용자 정의 유효성 검사를 실행합니다. 문제는 사용자 지정 유효성 검사에서 ValidationError를 발생시킬 때 사용자가 올바른 정보로 양식을 다시 전송하려고하면 항상 이전 제출의 데이터를 유지한다는 것입니다.Django-admin clean_fields override, submit시 이전 데이터 유지
class SignedOffModelValidation(models.Model): class Meta: abstract = True def clean_fields(self, exclude = None): super(SignedOffModelValidation, self).clean_fields(exclude) errors = {} if getattr(self, self._meta.immutable_sign_off_field, False): relation_fields = [ f for f in self._meta.fields if isinstance(f,(models.ForeignKey,models.ManyToManyField,)) and not f.name.endswith('_ptr') ] for field in relation_fields: try: field_value = getattr(self, field.name) signed_off = getattr( field_value, field_value._meta.immutable_sign_off_field ) except (AttributeError, ObjectDoesNotExist,): continue else: if not signed_off: msg = u'In order to signeoff, %s needs to be Signed Off' % \ (str(field_value),) errors[field.name] = ([msg]) if errors: raise ValidationError(errors)
도움을 주시면 감사하겠습니다.
안부
문제가이 모델을 조작하는보기/양식과 관련되어 있다는 점에 직감이 있습니다. 그걸 게시 할 수있는 기회라도 있으십니까? – leech