WTForms create variable number of fields

前端 未结 3 702
执笔经年
执笔经年 2021-02-05 17:18

How I would dynamically create a few form fields with different questions, but the same answers?

from wtforms import Form, RadioField
from wtforms.validators imp         


        
3条回答
  •  不要未来只要你来
    2021-02-05 17:38

    In my case, I used a csv and imported it using pandas.

    So, this solution allows you to even use different answers if required.

    data=pd.read_csv("./temp.csv")
    
    class UserForm(Form):
        for i in data:
            if data[i][0] == 'textbox':
                formElement='TextField("%s",validators=[validators.required()], default="please add content")' %(i)
    
            elif data[i][0] == 'radio':
                choice = list(data[i][1:].dropna().unique().tolist())
                choiceStr=''
                for k in choice:
                   choiceStr +="('"+k+"','"+k+"'),"
                
                formElement = 'RadioField("%s",validators=[validators.required()],choices=[%s], default="%s")' %(i,choiceStr, choice[0])
    
            elif data[i][0] == 'dropdown':
                choice = list(data[i][1:].dropna().unique().tolist())
                # choice.remove('X')
                choiceStr=''
                for k in choice:
                   choiceStr +="('"+k+"','"+k+"'),"
                
                formElement = 'SelectField("%s",validators=[validators.required()],choices=[%s])' %(i,choiceStr)
    
    
            exec("%s=%s" % (i,formElement))
    
    

提交回复
热议问题