2017-01-19 13 views
0

私はSQLAlchemyとHTMLフォームを初めて使い、HTMLテーブルの複数の行を削除する方法を理解する必要があります。これは、HTMLフォームのチェックボックスに対応しています。それが立つので、最初にチェックされた項目だけがテーブルから削除されます。私はこれがSQLAlchemy側でforループなしで実行できることを期待していましたか?ここで複数のチェックボックスsqlalchemy delete

私のHTMLコードです: -

<ul> 
      {% for alert in alerts %} 
        <li> <input name="alert_id" type="checkbox" value="{{ alert.alert_id }}"/> Ticker:{{ alert.ticker }} Price:{{ alert.price }}</li> 
      {% endfor %} 
</ul> 

、フラスコパイソンSQLAlchemyのスクリプト: -

if request.method == "POST": 
     if request.form["alert_id"]: 
      Alert.query.filter(Alert.alert_id == request.form["alert_id"]).delete() 
      db.session.commit() 

答えて

0

このライン

Alert.query.filter(Alert.alert_id == request.form["alert_id"]).delete() 

Alert.query.filter(Alert.alert_id.in_(request.form["alert_id"])).delete() 
する必要がありますまた SELECT * FROM <table_name> WHERE alert_id IN (<val>, <val2>)

を行い

は、それはあなたが常にあなたが存在しない場合alert_idlistなくKeyErrorを得ることを確認することができます代わりにrequest.form["alert_id"]request.form.getlist("alert_id")に固執する良いことです。

+0

ありがとう。 SQLAlchemyの優れた紹介と良いリファレンスWebサイトをお勧めしますか?私はこのような問題に遭遇する可能性が高いです。 – dbm

+0

喜んで助けてください、@ DBM。公式のドキュメントは、https://docs.sqlalchemy.org/en/latest/core/tutorial.htmlを参照するのに最適なソースです。 ここにきれいなチートシートがあります - https://github.com/crazyguitar/pysheeet/blob/master/docs/notes/python-sqlalchemy.rst –

関連する問題