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()
    中,根据数据库提供的选项列表
  • 我在jquery中添加了警报,以在提交时验证在每个选择字段中选择了哪些值,它为我提供了正确的选择值
  • 我在这个表单中还有其他选择字段,它们以类似的方式填充了来自数据库的值,它们工作正常,并且具有符合提交时选择的值

  • 填充选项时,从数据库中获取的数据中使用了哪些类型?是整数、字符串还是?它们是字符串。例如[(‘故事’、‘故事’、(‘诗’、‘诗’)…]