yutamugiruru
@yutamugiruru (mui)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

アップデートの際に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

No Answers yet.

Your answer might help someone💌