2011-11-03 3 views
17

ho un modello Jinja2 che assomiglia a questo:Scorrere caselle di controllo nel pallone

<form action="" method=post> 
    <table> 
     <tr> 
      <th></th> 
      <th>ID</th> 
      <th>Title</th> 
     </tr> 
     {% for page in pages %} 
      <tr> 
       <td><input type=checkbox name=do_delete value="{{ page['id'] }}"></td> 
       <td>{{ page['id'] }}</td> 
       <td><a href="{{ page['id'] }}">{{ page['title'] }}</a></td> 
      </tr> 
     {% endfor %} 
    </table> 
    With selected: 
    <input type=submit value=Delete> 
</form> 

E ho una funzione, che dovrebbe eliminare le pagine in base al quale le caselle di controllo sono state controllate, quando il 'Elimina' pulsante è cliccato:

db.session.query(Page).filter(Page.id.in_(page_ids)).delete() 

Quello che mi sono bloccato con è come faccio a scorrere tutte le caselle di controllo e costituiscono la lista di quelli controllati page_ids.

risposta

31

di Flask request oggetto (beh, in realtà la classe restituito dal l'istanza LocalProxy che è request) è una sottoclasse di struttura dati MultiDict di werkzeug - che include un metodo getlist.

page_ids = request.form.getlist("do_delete") 
+0

Funziona, grazie! –

+0

Brillante, grazie. –

+0

Davvero buono. Ha funzionato abbastanza bene per me. Grazie! – Thiago