2015-08-19 7 views
1

J'ai écrit un validateur personnalisé pour mon champ de schéma comme indiqué dans la documentation ici: http://docs.plone.org/develop/plone/forms/z3c.form.html#form-widget-validatorsl'aide d'un formulaire Widget validateur sur plusieurs champs

enter image description here

Ma question est que si je veux utiliser la même validateur pour quelques champs différents, est-ce possible? Cela ne semble pas fonctionner. par exemple, je voudrais écrire:

# Set conditions for which fields the validator class applies 
validator.WidgetValidatorDiscriminators(PhoneNumberValidator, field=IZohoContactForm['phone_number']) 
validator.WidgetValidatorDiscriminators(PhoneNumberValidator, field=IZohoContactForm['another_phone_field']) 
+2

En utilisant la même validateur sur plusieurs champs devrait fonctionner sans aucun problème. Avez-vous une trace d'erreur? – tisto

+1

Le comportement que je vois est que le deuxième enregistrement écrase le premier ... ie si j'ai le champ A, B et inscrit le validateur pour A et ensuite B (comme dans mon exemple) il se déclenche seulement pour le champ B. Si je échangez l'ordre de l'enregistrement alors inscrivez B puis A, il ne se déclenche que pour le champ A. C'est comme le dernier en gagne ... et non, pas d'erreur. –

+0

Avez-vous besoin d'appeler cela avec une liste de champs auxquels le validateur s'applique? https://github.com/zopefoundation/z3c.form/blob/54d7afe0320cb43b41c17596d844fa9cb21535e4/src/z3c/form/validator.txt#L166 dit "pour définir les discriminateurs" (pluriel). –

Répondre

0

Pour contourner ce problème, je l'ai écrit deux validateurs identiques avec des noms différents qui viole le principe sec, mais pas grand-chose que je peux pour celui-ci il semble ...