2017-04-16 2 views
0

Ich habe eine Funktion Groups.byorgid(arg1), die alle Gruppen einer bestimmten Organisation erhalten wird. Ich habe zuvor in WTForms einen ähnlichen Code mit Funktionen verwendet, für die kein arg angegeben werden musste, aber ich muss den orgid arg an diese Funktion übergeben, damit das Formular seine Dropdownliste ausfüllen kann. Wie soll ich das machen?Übergeben eines Werts an eine WTForms-Klasse

WTForm Klasse:

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] 

Die Funktion der Form Aufruf ist dies:

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

Benötige ich eine Methode für die Klasse InviteUser zu schaffen? Wenn ja, wie sollte das aussehen?

Antwort

0

Hier ist, wie Sie dynamisch das Feld hinzufügen:

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() 

Und verwenden Sie es als

form = user_forms.create_invite_user_form(orgid) 
Verwandte Themen