Dex*_*ter 2 python dictionary flask wtforms
我做了一个像这样的SelectField:
# constants.py
QUESTION_LIST = {}
QUESTION_LIST['QuestionOne'] = { 'disagree-strong': "Strongly Disagree", 'agree-strong': "Strongly Agree" }
#forms.py
from constants import *
typeone = SelectField('QuestionOne',
choices=QUESTION_LIST['QuestionOne'].iteritems(),
description='Answer the question')
Run Code Online (Sandbox Code Playgroud)
因此,当您加载页面时,它会显示选项.我选择了这个选项,然后按"提交"并显示"这不是一个有效的选择",它会清除选择字段.
然后,当您刷新页面时,就好像代码被破坏而且它不再显示选择......这是一个空的下拉/选择字段.
我究竟做错了什么?
编辑:出于某种原因,当你把iteritems放在视图而不是表单时,一切正常.Flask-WTF的某种怪癖,如果你不使用他们的格式,它似乎在你提交表格后删除了选择.
也许问题是你在dict中的键是一个字符串.我以前遇到过这个问题,所以这样的事情可能会有所帮助:
typeone = SelectField("Question1", coerce=str, choices=QUESTION_LIST['QuestionOne'])
Run Code Online (Sandbox Code Playgroud)
这coerce件事有所帮助.会发生什么我认为所有POST数据都是unicode,默认情况下coerce也等于unicode(至少在WTF表单中,如果你使用的话,需要检查Flask-WTF扩展名).你的选择键是字符串.
| 归档时间: |
|
| 查看次数: |
8616 次 |
| 最近记录: |