Aktualnie tworzę dynamiczne pole wyboru przy użyciu WTFORMS, jednak nigdy nie przesyła i nie sprawdza poprawności z następującym błędem.Nieprawidłowy wybór dla dynamicznego pola wyboru WTFORMS
Not a valid choice
moje pole jest tworzony tak:
area = SelectField()
aw widzenia jestem chwytając opcje z db tak:
form = MytestForm()
form.area.choices = [(a.id, a.name) for a in Area.objects.all()]
Działa jednak jeśli utworzyć opcje statyczne.
Cześć Sean dzięki za odpowiedź. Jednak używam mongodb, więc id jest w rzeczywistości ciągiem. – ismail
Dzięki temu, że był to problem typu "przymus", WTFORMS domyślnie konwertował na kod Unicode, jednak rzeczywisty obiekt to typ identyfikatora obiektu MongoDB. więc zmieniono wiązkę, aby utworzyć instancję ObjectID, i teraz sprawdza ona poprawność. – ismail
coerce = int naprawiono dla mnie. W szczególności, moim problemem było to, że moje wartości wyborów były liczbami całkowitymi 0 i 1. Domyślam się, że wtompy interpretowały to jako fałszywe i prawdziwe. Jednak mój model chce int. klasy ABC (zasada): xxx = kolumnowej (całkowita) klasy AbcView (ModelView) form_overrides = { 'foo' SelectField, } form_args = { 'foo' { 'wyboru' : [(0, "nieznany"), (1, "defcon 1")], 'coerce': int } } – coderfi