6

我只是 python 和金字塔的新手,我正在努力解决如何处理 Pyramid 中包含多个复选框的表单的结果。

这是我的表格的摘录:

<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)

正如您可能已经猜到的那样,无论我在表单上选择了多少个复选框,我最多只能识别一个复选框。Django 可以选择将结果作为列表返回,但我似乎无法弄清楚如何使用 Pyramid 做到这一点。

4

1 回答 1

7

request.params是一个multidict。要检索多个值,可以调用它的getall()方法:

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