Ich erstelle derzeit ein dynamisches Auswahlfeld mit WTFORMS, jedoch wird die Validierung niemals mit dem folgenden Fehler übergeben und fehlgeschlagen.Keine gültige Auswahl für dynamisches Auswahlfeld WTFORMS
Not a valid choice
Mein Feld ist wie folgt erstellt:
area = SelectField()
und in der Ansicht, ich bin Grabbing die Optionen aus dem db etwa so:
form = MytestForm()
form.area.choices = [(a.id, a.name) for a in Area.objects.all()]
Es funktioniert aber, wenn ich erstellen statische Optionen.
Hallo Sean, danke für die Antwort. Allerdings benutze ich mongodb, also ist die ID eigentlich eine Zeichenkette. – ismail
Danke, es war das Zwangsproblem, WTFORMS war standardmäßig auf die Konvertierung in Unicode, aber das eigentliche Objekt ist ein MongoDB Objekt ID Typ. Also habe ich den Zwang geändert, um eine ObjectID-Instanz zu erstellen, und sie validiert jetzt. – ismail
coerce = int hat es für mich behoben. Konkret war mein Problem, dass meine Auswahlwerte ganze Zahlen 0 und 1 waren. Meine Vermutung ist, dass wtforms dies als False und True interpretierte. Allerdings möchte mein Modell ein Int. Klasse Abc (Basis): foo = Spalte (Integer) Klasse AbcView (Modelview): form_overrides = { 'foo': SELECT, } form_args = { 'foo': { 'Wahlen' : [(0, 'unbekannt'), (1, 'defcon 1')], 'coerce': int } } – coderfi