J'ai une liste déroulante de liste de sélection sur mon formulaire qui est rempli avec des données d'un modèle (directeurs). La valeur de cette liste déroulante n'a pas besoin d'être sauvegardée; il n'est vraiment utilisé que pour dynamiquement déclencher un autre élément de la forme (une liste déroulante intitulée Films). Ainsi, lorsque l'utilisateur choisit un directeur, il remplit dynamiquement la deuxième liste avec les films attachés à ce directeur.Remplacer la validation des données sur un élément de formulaire django
Le premier élément de la première liste est "Tous les administrateurs". Au lieu de filtrer la liste des films, tous les films sont affichés dans la deuxième liste parce que tous les réalisateurs sont choisis.
Si l'utilisateur choisit un directeur spécifique puis un film, le formulaire est correctement soumis. Le problème est que si l'utilisateur choisit Tous les réalisateurs, puis sélectionne un film, quand le formulaire est soumis, il me dit que mon choix pour les directeurs n'est pas valide parce que ce n'est pas l'un des choix disponibles. Dans ce cas, un choix disponible (je suppose) est l'un des objets Director.objects existants dans la base de données. Mais parce que je ne me soucie pas du directeur, je n'ai pas besoin que cette entrée soit valide. J'ai juste besoin de Film pour être valide.
J'utilise un ModelForm. Comment désactiver ou remplacer la validation des données dans le champ du formulaire Director afin qu'il ignore l'erreur générée par ce champ?
'super (MyForm, self) .clean()' cela permettra-t-il que la validation par modèle par défaut soit toujours active? – andi
Oui. Avant d'atteindre la méthode de nettoyage du formulaire, les validateurs de champ ont déjà été exécutés. Vous pouvez vérifier s'ils ont généré des erreurs dans l'attribut "errors" du formulaire. (Django 1.8) –