Я не могу направить 2 аргумента (skill_id, Score) по форме выбора в skill_summary.html. Здесь в skill_summary.html для счетчика установлено постоянное значение 2 в url_for, но как я могу динамически передать счет, выбранный для update_skill?
rout.py
@app.route("/update_skill/<int:skill_id>/<int:score>", methods=['GET', 'POST'])
def update_skill(skill_id, score):
skill = Skill.query.get_or_404(skill_id)
skill.score = score
db.session.commit()
flash('Score has been updated!', 'success')
return redirect(url_for('skill_summary'))
@app.route("/skill_summary")
def skill_summary():
skills = Skill.query.all()
return render_template('skill_summary.html', skills=skills)
skill_summary.html
<form action="{{ url_for('update_skill', skill_id=skill.id, score=1) }}" method='POST'>
<select name="score">
{% for score in range(6) %}
<option value={{score}} {% if score==skill.score %} selected {% endif %}> {{score}} </option>
{% endfor %}
</select>
<div>
<input type="submit" value="Submit">
</div>
</form>
Если заменить на
<form action="{{ url_for('update_skill', skill_id=skill.id, score=score)}}", class="form" method="POST">
В веб-браузере отображается следующая ошибка.
jinja2.exceptions.UndefinedError
jinja2.exceptions.UndefinedError: 'score' is undefined