2016-12-18 1 views
0

ID、名前、価格、在庫レベルを含むアイテムのリストがあるページがあります。この情報はSQLite3データベースから得られ、テーブルのページに入力されます。テーブルには、アイテムの在庫を追加または削除できる列もあります。Python Bottle - フォームをポストする/リフレッシュするたびに関数を繰り返す

このコードは、テーブルのセクションを示しています

% for i in items: 
<tr> 
    <th scope="row">{{i[0]}}</th> 
    <td>{{i[1]}}</td> 
    <td>{{i[2]}}</td> 
    <td>{{i[3]}}</td> 
    <td><form method="post" action="/worker"><input type="number" name="newStock.{{i[0]}}"><input style="margin-left: 5px" type="submit" Value="Submit"></form></td> 
</tr> 
% end 

そして、ここでは、このページ用のPythonボトルコード

@route('/worker', method='GET') 
def workerPage1(): 
    return template('worker', items=store.printItems(2)) # 1 prints out for shoppers, 2 prints out for workers. 

@route('/worker', method='POST') 
def workerPage2(): 
    # allows to receive ItemId 
    for k in request.forms: 
     if k.startswith('newStock.'): 
      itemId = k.partition('.')[-1] 
      numStock = request.forms.get(k) 
      store.updateStock(itemId,numStock) # this accesses the database, updating the stock level 

    return template('worker', items=store.printItems(2)) 

私は取得しています問題であり、私が株式を入力したときということです追加するには、たとえば '8'と言っても問題ありません。しかし、私はページをリフレッシュするとき、それはそれに別の8を加えます。だから22時には、私は株式を追加するために提出をクリックし、それは30に行くだろうし、私は38などに行くだろうページをリフレッシュしたとき

これをやってからどのようなことをやめたらいいですか?

ありがとうございました。

答えて

0

return template('worker', items=store.printItems(2))の代わりにworkerPage2()には、return redirect('worker')を使用しました。私が望むように働く。

関連する問題