Поскольку моему веб-сайту нужно несколько форм с различными таблицами БД, я хочу создать значения в одном файле html, вот что у меня есть. forms.py:
class Admin_AccountForm(FlaskForm):
acctype = SelectField('Account Type', choicesS=[('Member', 'Member'), ('Admin', 'Admin')], validators=[DataRequired()])
username = StringField('Username', validators=[DataRequired(), Length(min=2, max=20)])
email = StringField('Email', validators=[DataRequired(), Email()])
password = PasswordField('Password', validators=[DataRequired(), Length(min=6, max=30)])
confirm_password = PasswordField('Confirm Password', validators=[DataRequired(), EqualTo('password')])
submit = SubmitField('Sign Up')
(представьте себе несколько таких форм, но с разным количеством полей и имен) website.py (основная):
@app.route('/admin/display/<string:mode>/create')
def admin_create(mode):
form = Admin_AccountForm()
formfield = ['acctype', 'username', 'email', 'password', 'confirm_password', 'submit']
return render_template('admin_create.html', form = form, mode = mode, formfield = formfield)
(все остальное работает, поэтому просто сосредоточиться на проблеме) admin_create. html:
<form method="POST" action="">
{{ form.hidden_tag() }}
<fieldset>
<div class="form-group">
{{ form.formfield[0].label(class="form-control-label") }}
{% if form.formfield[0].errors %}
{{ form.formfield[0](class="form-control form-control-md is-invalid") }}
<div class="'invalid-feedback">
{% for error in form.formfield[0].errors %}
<span>{{ error }}</span>
{% endfor %}
</div>
{% else %}
{{ form.formfield[0](class="form-control form-control-md") }}
{% endif %}
</div>
</fieldset>
<div class="form-group form-btn">
{{ form.submit(class="btn") }}
</div>
</form>
, как вы можете видеть, я не смог заставить работать форму, так как я могу сделать так, чтобы поле формы [0] превратилось в acctype , и то, что я хотел, было что-то вроде этого
<!-- the formfield should change to acctype so the form works with any forms I have -->
{{ form.acctype(class="form-control form-control-md") }}
кто-то, пожалуйста, помогите мне решить эту проблему