Как можно предварительно заполнить форму данными, поступающими из базы данных?
Использование MySQL У меня есть переменная post, и я хочу получить заголовок и postContent для заполнения в форме.
mydb = mysql.cursor(dictionary=True)
query = "SELECT title, postContent FROM posts WHERE id=%s"
query_values = (post_id,)
mydb.execute(query, query_values)
post = mydb.fetchone()
form = PostEditForm(obj=post)
form.populate_obj(post)
if request.method == "GET":
return render_template('/posts/edit.html', post=post, form=form)
Моя форма выглядит следующим образом под forms.py
class PostEditForm(FlaskForm):
title = StringField('Title', id="post-title")
postContent = TextAreaField('Content', id="post-content")
submit = SubmitField('Update')
Тогда HTML выглядит так:
<form method="post" action="{{ url_for('post_single', post_id=post['id']) }}" enctype="multipart/form-data">
{{ form.csrf_token }}
<h1>{{ post["id"] }}</h1>
<div class="form-group">
<legend>{{ form.title.label }}</legend>
{{ form.title(class="form-control", size=20) }}
</div>
<div class="form-group">
<legend>{{ form.postContent.label }}</legend>
{{ form.postContent(class="form-control") }}
</div>
<div class="form-group btn-with-margin">
{{ form.submit(class="btn btn-primary") }}
</div>
</form>
Когда я go в браузере я вижу следующую ошибку:
AttributeError: 'dict' object has no attribute 'title'
Как заполнить форму данными?