6

私はPythonとピラミッドを初めて使用し、ピラミッドで複数のチェックボックスを含むフォームの結果を処理する方法に苦労しています。

これが私のフォームからの抜粋です:

<p tal:repeat="category categories">
    <input type="checkbox" name="selectedcategories" value="${category.id}"> ${category.name}<br/>
</p>

そして、これが私が現在どのように結果を繰り返し処理しようとしているのかです:

selectedcategories=request.params['selectedcategories']    
for categoryid in selectedcategories:
        category = DBSession.query(Category).filter_by(id=categoryid).one()
        article.categories.append(category)

ご想像のとおり、フォームでいくつ選択しても、最大1つのチェックボックスしか認識されません。Djangoには結果をリストとして返すオプションがありますが、Pyramidでそれを行う方法がわからないようです。

4

1 に答える 1

7

request.paramsmultidictです。複数の値を取得するには、そのgetall()メソッドを呼び出すことができます。

selectedcategories = request.params.getall("selectedcategories")
于 2012-08-04T08:32:19.207 に答える