3
我的問題很簡單,我有一個類,在我的應用程序模型,從models.Model繼承。 我重寫了django-admin的clean_fields方法,以便對我的表單執行一些自定義驗證。 問題是,當它從我的自定義驗證中引發ValidationError時,如果用戶嘗試再次使用正確的信息提交表單,它將始終保留之前提交的數據。Django的管理clean_fields覆蓋,保持以前的數據提交
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 2011-09-23 01:12:59