我目前正在使用WTFORMS創建一個動態選擇字段,但它從不提交併且未通過驗證並顯示以下錯誤。動態選擇字段不是有效選擇WTFORMS
Not a valid choice
我場創建這樣的:
area = SelectField()
,並在視圖中,我從數據庫抓取的選項,如下所示:
form = MytestForm()
form.area.choices = [(a.id, a.name) for a in Area.objects.all()]
它的工作原理但是如果我創建靜態選項。
嗨肖恩,爲響應感謝。不過,我使用的是mongodb,所以id實際上是一個字符串。 – ismail
感謝這是脅迫問題,WTFORMS默認轉換爲unicode,但實際的對象是MongoDB對象ID類型。所以我改變了強制創建一個ObjectID實例,它現在驗證。 – ismail
coerce = int爲我解決了它。 具體來說,我的問題是,我的選擇值碰巧是整數0和1. 我的猜測是wtforms解釋爲False和True。 但是,我的模型想要一個int。 ABC類(鹼): 富=柱(整數) 類AbcView(模型視圖): form_overrides = { '富':SelectField, } form_args = { '富':{ '選擇' :[(0,'unknown'),(1,'defcon 1')], 'coerce':int } } – coderfi