首页 > 解决方案 > 尝试在 QuerySelectField 中填充数据时出现 Flask WTForms 错误

问题描述

我尝试从返回年份列表的函数中填充QuerySelectField。但我得到了错误

sqlalchemy.orm.exc.UnmappedInstanceError: Class 'builtins.str' is not mapped

这是我的代码:

表格.py

class TahunAuditForm(Form):
    def get_list_tahun():
        """Looping year from 1990 to 2025"""
        years = {}
        for yr in range(1990, 2025):
           years[str(yr) + '-' + str(yr+1)] = [str(yr) + '-' + str(yr+1)]
        return years

    tahun = QuerySelectField(
        _('Year'),
        query_factory = get_list_tahun,
        allow_blank=True,
        blank_text=_('-- choose year --')
    )
    start = DateTimeField(_('Start Periode'))
    end = DateTimeField(_('End Periode'))

我希望高级可以提供帮助,我的代码有什么问题以及如何将数据填充到QuerySelectField

谢谢。

标签: flaskflask-wtformswtforms

解决方案


我在这个链接中找到了答案

这是我使用的代码:

# function 
def get_list_tahun_audit():
   """Looping year from 1990 to 2025"""
   return [(str(yr), str(yr) + '-' + str(yr + 1)) for yr in range(2000, 2025)]


class TahunAuditForm(Form):
    def get_list_tahun():
        list_tahun = get_list_tahun_audit()
        return list_tahun[::-1]

    tahun = SelectField('Tahun', choices=get_list_tahun())
    start = DateTimeField(_('Start Periode'))
    end = DateTimeField(_('End Periode'))

我希望这可以帮助某人,快乐的编码......


推荐阅读