Python 提交时的字段不提供任何内容
我在表格中有一个选择字段,我声明如下:Python 提交时的字段不提供任何内容,python,select,flask,wtforms,flask-wtforms,Python,Select,Flask,Wtforms,Flask Wtforms,我在表格中有一个选择字段,我声明如下: class WorkuploadForm(Form): .... worktype = SelectField('worktype', choices=[('', '')], validators=[validators.Required("Select type of work.")]) contenttype = SelectField('contenttype', choices=[('', '')],
class WorkuploadForm(Form):
....
worktype = SelectField('worktype', choices=[('', '')],
validators=[validators.Required("Select type of work.")])
contenttype = SelectField('contenttype', choices=[('', '')],
validators=[validators.Required("Please select content type.")])
....
submit = SubmitField('Publish')
def validate(self):
flash(self.worktype.choices)
flash(self.worktype.data)
....
return validate_form(self)
@module.route("/<penname>/workupload", methods=["GET", "POST"])
@handle_error
@login_required
def workupload(penname=None, workid=None):
workupload_form = WorkUploadForm(prefix="upload",
csrf_enabled=False)
...
workupload_form.worktype.choices = getVariables("variables", "work")
workupload_form.contenttype.choices = getVariables("variables",
"content")
...
[('', ''), (u'story', u'Story'), (u'poem', u'Poem'), (u'book', u'Book'), (u'article', u'Article')]
my form类中的validate()
函数具有一些自定义验证,并且validate\u form()
函数是wtf表单验证的默认函数
我为数据库中的两个select字段填充了选项,如下所示:
class WorkuploadForm(Form):
....
worktype = SelectField('worktype', choices=[('', '')],
validators=[validators.Required("Select type of work.")])
contenttype = SelectField('contenttype', choices=[('', '')],
validators=[validators.Required("Please select content type.")])
....
submit = SubmitField('Publish')
def validate(self):
flash(self.worktype.choices)
flash(self.worktype.data)
....
return validate_form(self)
@module.route("/<penname>/workupload", methods=["GET", "POST"])
@handle_error
@login_required
def workupload(penname=None, workid=None):
workupload_form = WorkUploadForm(prefix="upload",
csrf_enabled=False)
...
workupload_form.worktype.choices = getVariables("variables", "work")
workupload_form.contenttype.choices = getVariables("variables",
"content")
...
[('', ''), (u'story', u'Story'), (u'poem', u'Poem'), (u'book', u'Book'), (u'article', u'Article')]
但一旦我提交表单并调用validate\u on\u submit()
,则workupload\u表单.worktype.data
和workupload\u表单.contenttype.data
都是None
为什么会发生这种情况。我应该在这里得到选择值,但为什么它没有给我
注意:
workupload\u form.worktype.choices
和workupload\u form.contenttype.choices的选项时,在validate\u on\u submit()
中,根据数据库提供的选项列表
填充选项时,从数据库中获取的数据中使用了哪些类型?是整数、字符串还是?它们是字符串。例如[(‘故事’、‘故事’、(‘诗’、‘诗’)…]