Wie kann ich überprüfen wtforms Felder gegeneinander ab?
Habe ich drei identische SelectField
Eingaben in einem Formular, jedes mit der gleichen Optionen. Ich kann nicht verwenden Sie eine Mehrfachauswahl.
Ich möchte sicherstellen, dass die Benutzer drei verschiedene Möglichkeiten für diese drei Felder.
In benutzerdefinierte überprüfung, es scheint, dass Sie können nur auf einem Feld zu einer Zeit, nicht zu vergleichen, ist der Wert dieses Felds für andere. Wie kann ich das tun? Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie überschreiben
validate
in IhremForm
...if not Form.validate(self):
? Das hält brennen, wenn ich versuche deinen Vorschlag und die Validierung nicht ausgeführt werden.if not Form.validate(self)
Und dann die benutzerdefinierte Validierung code ausgeführt wird. Wenn ich lese, dass es gelöscht Dinge für mich. Noch @FogleBird tolle Antwortsuper().validate()
alsForm.validate(self)
. Wenn du auf Python 2 verwenden Siesuper(MyForm, self).validate()
.Schrieb ich ein kleines python-Bibliothek erforderlich zum cross-field Validierung, wie dies einfacher. Kodieren Sie Ihre Validierungslogik deklarativ als die paarweisen Abhängigkeiten. So Ihr Formular Aussehen könnte:
Können Sie die VALIDATION-Objekt und fügen Sie mehr Validierungsregeln oder es sogar in ein separates Modul und importieren /wiederverwenden von Validierungsregeln in verschiedenen Orten.
Verwenden FieldList wie diese:
Können Sie die Prüfungen auf Feldebene UND auf FieldList-Ebene