Python 3.x 如何循环浏览无线电场列表

Python 3.x 如何循环浏览无线电场列表,python-3.x,flask,jinja2,flask-wtforms,Python 3.x,Flask,Jinja2,Flask Wtforms,如何循环查看wtform无线电场列表?我试图通过以下代码实现这一点: 下面是我在.py文件中的代码。生成字段的代码位于init方法中 from flask import (Flask, render_template, request, session, url_for, redirect) from flask_wtf import FlaskForm from wtforms import SubmitField, RadioField, StringFiel

如何循环查看wtform无线电场列表?我试图通过以下代码实现这一点:

下面是我在.py文件中的代码。生成字段的代码位于init方法中

from flask import (Flask, render_template, request,
                session, url_for, redirect)
from flask_wtf import FlaskForm
from wtforms import SubmitField, RadioField, StringField

app = Flask(__name__)
app.config['SECRET_KEY'] = 'my_secret'

class AssessmentForm(FlaskForm):
    """Questionnaire Assessment Form"""

    submit = SubmitField('Submit')

    def __init__(self):
        super().__init__()

        #Get Activity Questions
        f = open(r'my_path\questions.txt','r')
        q = f.readlines()
        q = [s.strip() for s in q]
        f.close()
        self.questions = q

        #Create 60 rows of 5 radio buttons
        self.radio_row = []
        for i in range(60):
            #row of 5 radio fields
            rr = RadioField(label=f'row{i+1}',choices=[('s_dis', 'Strongly Dislike'), 
                                    ('dis', 'Dislike'),
                                    ('unsure', 'Unsure'),
                                    ('dis', 'Like'),
                                    ('s_like', 'Disagree')])
            self.radio_row.append(rr)

@app.route('/', methods=['GET','POST'])
def assessment():
    form = AssessmentForm()

    if form.validate_on_submit():
        return redirect(url_for('results'))

    return render_template('questionnaire.html', form=form)

@app.route('/results')
def results():
    return render_template('results.html')

if __name__ == "__main__":
    app.run(debug=True)
尝试此操作时,会出现以下错误:

 TypeError: 'UnboundField' object is not iterable

WTForms基于python的类元编程,默认情况下,要使所有内容正常工作,您需要在特定的时间内执行特定的操作。对于要工作的字段,它们应该绑定(通常绑定到表单),WTForms通过特殊的方式绑定字段。但是WTForms需要知道绑定哪些字段以及这些字段存储在哪些字段中。因此,在您的情况下,为了避免元编程的复杂性,一个简单的解决方案是在super()之前将新创建的字段附加到_unbound_fields。uuu init_uuu()调用,以便WTForms在初始化过程中为您绑定它


另外,您好。我确实在代码中构造了表单。我发布了一个对整个代码的编辑。你的修改表明你有完全不同的问题。我已经相应地确定了我的答案。