Disons que j'ai un modèle:Django: Est-ce que model_instance.clean() s'exécute avant les validateurs de base?
class Ticket(models.Model):
client = models.ForeignKey(Client)
color = models.CharField(max_length=255)
def clean(self):
self.color = self.client.favorite_color
Quand je lance ce sur le dernier Django (chef du SVN d'il y a 15 minutes), si je frappe enregistrer sans sélectionner client
, je reçois une erreur DoesNotExist
de l'intérieur de ma méthode propre (pour la partie self.client.favorite_color
). Puisque le modèle nécessite l'attribut client
, ne devrait-il pas être traité avant ma validation personnalisée dans clean()
?
est ici la documentation que je lis: http://docs.djangoproject.com/en/dev/ref/models/instances/#id1
Je pensais que c'était seulement pour ModelForms? – fijter
@ D4V360: L'OP fait référence à la version SVN. La méthode 'clean' a été introduite. Voir toutes les méthodes du modèle: http://docs.djangoproject.com/fr/dev/ref/models/instances/#ref-models-instances –
Si vous voulez dérouler le SVN, tirez de la révision # 12267. Dans # 12268 et forward jusqu'à ce qu'ils corrigent (je mets un ticket), si vous élevez un ValidationError ('avec une chaîne comme celle qui est documentée'), une erreur d'exécution se produit dans django.forms.models en raison d'un punaise. 12268 est l'endroit où ce bug a été introduit. – orokusaki