{% for user in users %}
...
<a href="/user/edit/{{ user.id }}">Изменить</a></td>
{% endfor %}
@app.route('/user/edit/<int:id>', methods=['GET', 'POST'])
@login_required
def edit_user(id):
if current_user.admin == True:
form = EditForm()
# Вот на этом моменте я вообще не понимаю, что добавлять в аргументы
# Данные, которые изменяю: fullname=form.fullname.data,
# email=form.email.data, gpa=form.gpa.data, phone=form.phone.data
user = User.query.filter_by(id=id).update()
if form.validate_on_submit():
db.session.commit()
flash('Данные изменены')
return redirect(url_for('admin'))
return render_template('edit_user.html', title='Изменить данные', form=form, user=user)
flash('Изменить не получилось, нет доступа')
return redirect(url_for('index'))
class EditForm(FlaskForm):
fullname = StringField('Фамилия, имя, отчество', validators=[DataRequired()])
email = StringField('Email', validators=[DataRequired()])
gpa = FloatField('Средний балл аттестата')
phone = IntegerField('Контактный телефон')
submit = SubmitField('Изменить')
<form action="" method="post">
{{ form.hidden_tag() }}
<p>
{{ form.fullname.label }}<br>
{{ form.fullname(size=64, value=user.fullname) }}<br>
{% for error in form.fullname.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
</p>
<p>
{{ form.email.label }}<br>
{{ form.email(size=64, value=user.email) }}<br>
{% for error in form.email.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
</p>
<p>
{{ form.phone.label }}<br>
{{ form.phone(size=32, value=user.phone) }}<br>
{% for error in form.phone.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
</p>
<p>
{{ form.gpa.label }}<br>
{{ form.gpa(size=32, value=user.gpa) }}<br>
{% for error in form.gpa.errors %}
<span style="color: red;">[{{ error }}]</span>
{% endfor %}
</p>
<p>{{ form.submit() }}</p>
</form>