Моя цель - создать форму с динамически предоставляемыми метками и использовать ее в форме Jinja. Это заставило меня раскрыть несколько основных вопросов.
Как в примере здесь
from flask_wtf import FlaskForm
from wtforms import SubmitField
from wtforms.validators import DataRequired
class LoginForm(FlaskForm):
# submit = SubmitField('Go On')
def __init__(self, BtnLble):
self.submit = SubmitField(BtnLble,form=self, name="MySbmt", _meta=self.Meta)
# self.submit.bind(form=self, name="MySbmt", _meta=self.Meta)
super(LoginForm,self).__init__()
self.submit() # .__call__() does not exist
def UseForm( ) :
Login = LoginForm(“Hit here”)
if form.validate_on_submit():
flash('Wellcom... ' )
return redirect(url_for(‘GoOn’))
return render_template('Login.html', **locals())
Я пытаюсь создать свою форму "динамически" в части __init __ класса формы. Похоже, что конструкция элементов (приведенная в комментарии в примере) отличается от конструкции, сделанной в части объявления
В приведенном выше примере вызов submit () приведет к «Не вызываемому объекту». Пока это будет возможно, если только это объявлено в части объявления!
Поэтому на ум приходят следующие вопросы:
1) В чем разница между объявлением в части объявления и объявлением внутри __init __ '. Мы не используем «статическую» переменную ей!
2) Как сделать так, чтобы поле формы вызывалось?
3) Кажется, что вызывающая способность становится существующей только после вызова инициатора FlaskForm. Как он добавляет «метод» к этому объекту?
Я заметил, что подобные вопросы были выявлены другими опытными разработчиками, но они не предоставили их таким простым способом, как этот
WTForms продолжает выдавать ошибку «Не вызывается» во время работы сервера, но не в приглашении python