将值传递给 WTForms Class

Passing a Value to a WTForms Class

我有一个函数 Groups.byorgid(arg1) 可以获取特定组织的所有组。我之前在 WTForms 中使用过类似的代码,其中的函数不需要指定 arg,但我需要将 orgid arg 传递给此函数,以便表单可以填充其下拉列表。我应该怎么做?

WTForm Class:

class InviteUser(Form):
    ''' Allows an org to invite a user '''
    groups = Groups.byorgid(orgid)
    group = SelectField(
                        coerce=int,
                        choices=[(g.id, g.name) for g in groups]

调用表单的函数是这样的:

def invite_user():
    orgid = current_user.orguser().Organizations.id
    form = user_forms.InviteUser()

我需要为 class InviteUser 创建一个方法吗?如果是这样,那应该是什么样子?

动态添加字段的方法如下:

def create_invite_user_form(orgid):
    class InviteUser(Form):
        pass
    groups = Groups.byorgid(orgid)
    group = SelectField(coerce=int, choices=[(g.id, g.name) for g in groups])
    setattr(InviteUser, "group", group)
return InviteUser()

并将其用作

form = user_forms.create_invite_user_form(orgid)