Quoi qu'il en soit pour créer un champ conditionnellement requis sur la base de la renonibilité ou non d'un autre champ de même forme?
If field1 has no data and field2 has no data
form is invalid
3 Réponses :
Méthode de remplacement .Clean (auto), vérifiez pour Self.Cleaned_Data et soulevez validationError P>
Remarque: Si cela correspond à cela pour un plug-in Django CMS, assurez-vous de remplacer la méthode Netty (Self) dans la définition Modèles.py pour le plugin, plutôt que dans Forms.py.
Vous pouvez également faire cela à l'aide du modèle si vous connaissez la validation s'appliquera à tous les objets de cette classe. Pour utiliser ci-dessous au niveau du formulaire, utilisez nettoyé_data. Voici un exemple d'exemple de Django Documentation à l'aide de référence: instance de modèle propre , Validateurs Django P> Voici un exemple de formulaires: P> validationError code>:
class SimpleForm(forms.ModelForm):
def clean(self):
cleaned_data = super(SimpleForm, self).clean() # Get the cleaned data from default clean, returns cleaned_data
field1 = cleaned_data.get("field1")
field2 = cleaned_data.get("field2"),
if not field1 and not field2:
raise forms.ValidationError('Please fill in both fields.')
return cleaned_data
La meilleure solution pour le champ obligatoire conditionnellement consiste à remplacer la méthode de nettoyage de la forme et à afficher l'erreur à condition. Par exemple: