アップデートの際にselectタグの初期値をデータベースから設定したいです。
解決したいこと
updateの際、selectタグの初期値をdbから引っ張れるようにしたいです。
(データベースのリストを値としてselected)
例)
現在flaskを使用してwebアプリケーションを作成しております。
アップデートの際、select値をdbから引っ張り出してselectedしたいです。
どうかご教授お願いいたします。
ちなみにdbはsqlite3,flask-sqlalchemyを使用しております。
該当するソースコード
#app.py
class Store(db.Model):
__tablename__ = 'stores'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50), nullable=False)
pref = db.Column(db.String(200), nullable=False)
#update
@app.route("/<int:id>/update", methods=['GET','POST'])
def update(id):
#Storeクラスのインスタンス
storeList = Store.query.get(id)
if request.method == 'POST':
storeList.name = request.form['name']
beforeP = request.form.getlist('pref')
storeList.pref = ",".join(beforeP)
db.session.commit()
return render_template('update.html', store = storeList)
else:
return render_template('update.html', store = storeList)
<!-- update.html -->
{% if request.method == 'GET' %}
<form action="" enctype="multipart/form-data" method="POST">
<label for="name">店舗名</label>
<input type="text" name="name" value="{{ store.name }}">
<label for="pref">エリア(複数可)</label>
<select name="pref" multiple>
<option value="北海道">北海道</option>
<option value="青森県">青森県</option>
<option value="岩手県">岩手県</option>
<option value="宮城県">宮城県</option>
<option value="秋田県">秋田県</option>
・・・・・・・・
</select>
<input type="submit" value="変更">
</form>
{% else %}
<h1>{{ store.name }}</h1>
<ul>
{% set list1 = store.pref.split(',') %}
{% for pref in list1 %}
<li>{{ pref }}</li>
{% endfor %}
</ul>
jqueryから表示させようと試みましたが上手く動きませんでした。
どうぞ宜しくお願い致します。
0