Ma question est simple, j'ai une classe dans mon modèle d'application qui hérite de models.Model. Je remplace la méthode clean_fields du django-admin, afin d'exécuter une validation personnalisée sur mon formulaire. Le problème est que lorsqu'il déclenche une erreur ValidationError à partir de ma validation personnalisée, si l'utilisateur essaie à nouveau de soumettre le formulaire avec les informations correctes, il conserve toujours les données de l'envoi précédent.Django-admin clean_fields override, conserve les données précédentes sur 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)
Toute aide serait appréciée!
Cordialement
J'ai l'intuition que votre problème est associé à la vue/formulaire qui manipule ce modèle. Y a-t-il une chance que vous puissiez poster ça? – leech