У меня есть небольшая форма, которую я хочу заполнить результатами запроса, чтобы потом его можно было редактировать. Я использую Flask, WTForms и psycopg2 (без SQLAlchemy).
Функция просмотра:
@app.route('/editpositions/<row>', methods=['GET', 'POST'])
def editpositions_row(row):
conn = connect(host="localhost", user="postgres", dbname="portfoliotool", password="")
form = EditPositions()
if request.method == 'GET':
with conn.cursor() as cur:
sql = "SELECT isin, aantal FROM posities WHERE posnr = %(row)s"
cur.execute(sql, {"row": row})
data_pos = cur.fetchall()
form.isin.data = data_pos[0][0]
form.aantal.data = data_pos[0][1]
return render_template('editpositions.html', form=form)
HTML-шаблон:
{% block app_content %}
<<div class="container">
<div class="row justify-content-center">
<div class="col">
<h1>Pas posities aan</h1>
<form action="" method="post" novalidate>
{{ form.hidden_tag() }}
<p>
{{ form.isin.label }}<br>
{{ form.isin(size=32) }}
</p>
<p>
{{ form.aantal.label }}<br>
{{ form.aantal(size=32) }}
<p>{{ form.submit() }}</p>
</form>
</div>
</div>
</div>
{% endblock %}
Страница и форма отображаются нормально, но два поля не заполнены. Я проверил SQL-запрос в консоли, и он возвращает желаемые результаты, поэтому я предполагаю, что что-то упустил. Кто-нибудь может мне помочь?