Flask 烧瓶形式-';未绑定字段';对象不可调用,动态字段赢了';正确初始化

Flask 烧瓶形式-';未绑定字段';对象不可调用,动态字段赢了';正确初始化,flask,wtforms,flask-wtforms,Flask,Wtforms,Flask Wtforms,app.py books.html from flask import Flask, render_template from flask_wtf import FlaskForm from wtforms import StringField, SubmitField, FieldList, FormField app = Flask(__name__) app.config['SECRET_KEY'] = 'apple pie' class BookForm(FlaskForm):

app.py

books.html

from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField, FieldList, FormField

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


class BookForm(FlaskForm):
    book = StringField('book title')


class LibraryForm(FlaskForm):
    def __init__(self, min_entries=0, *args, **kwargs):
        super(LibraryForm, self).__init__(*args, **kwargs)
        self.books = FieldList(FormField(BookForm), min_entries=min_entries)

    library = StringField('Library name')
    books = FieldList(FormField(BookForm), min_entries=3)
    submit = SubmitField('Submit')


@app.route('/book', methods=['GET', 'POST'])
def book():
    form = LibraryForm(min_entries=5)
    if form.validate_on_submit():
        return 'aww yeah'
    return render_template('books.html', form=form)
当我注释掉init函数时,表单按照预期工作,除了不灵活的图书字段数量。我花了相当长的时间寻找答案,但找不到任何解决问题的方法


任何帮助都是徒劳的

这不是一个理想的解决方案,但这是可行的

TypeError: 'UnboundField' object is not callable
TypeError: 'UnboundField' object is not callable
from flask import Flask, render_template
from flask_wtf import FlaskForm, Form
from wtforms import StringField, SubmitField, FieldList, FormField

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


class BookForm(FlaskForm):
    book = StringField('book title')


class LibraryForm(FlaskForm):
    library = StringField('Library name')
    books = FieldList(FormField(BookForm))
    submit = SubmitField('Submit')


@app.route('/book', methods=['GET', 'POST'])
def book():
    form = LibraryForm()
    if form.validate_on_submit():
        return 'aww yeah'
    for i in range(6):
        form.books.append_entry()

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