使用谷歌应用引擎和python,如何检查是否标记了复选框?

Using google app engine and python, how do I check if a checkbox is marked?

我想使用复选框显示一些用户想在购物车中购买的商品。

在待销售商品的db.model类中,我包括:

1
2
3
amount = db.StringProperty(required = True)
price = db.StringProperty(required = True)
checked = db.BooleanProperty(default = False)

db.model类html:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<tr>
<td class ="checkbox">
        <input type ="checkbox" name ="check">
    {{s.checked}}
</td>

<td class ="entry_amount" name ="entry">
    {{s.amount}}
</td>

<td class ="entry_price" name ="entry">
    {{s.price}}
</td>
</tr>

每次用户访问购买页面时,每个项目的选中属性都设置为false。在"购买"页面的"发布"方法中,我有以下内容:当用户点击"提交"时;复选框是复选框的名称;复选框在HTML中没有赋值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sells = SellModel.all()
boxcount = 0

for sell in sells:
    check = self.request.get('check')
    if check:
        sell.checked = True
        sell.put()
        boxcount += 1

if boxcount == 0:
    error ="check at least one box"
    self.render("buy.html", error = error, sells = sells)
else:    
    self.redirect('/cart')

buy.html包括:

1
2
3
4
5
6
7
8
9
<tr class ="table_label">
            <th></th>
            <th>amount of mp</th>
            <th>price per mp</th>
            </tr>
            {% for sell in sells %}
                {{ sell.render() | safe }}
                </input>
            {% endfor %}

self.redirect指向购物车页面,其中get方法

1
2
3
 cart = SellModel.all()
    cart.filter("checked =", True)
    self.render("newbuy.html", cart = cart)

当我进入购物车页面时,会选择列出待售的每个项目,而不仅仅是复选框中的项目。为什么会这样?

帮助。


试着查看下面的字符串实际有哪些关键字使用有 Key()python function:

1
2
3
4
5
check = self.request.has_key('check') #you may also use ('check' in self.request) - see my comment below.
if check:
    sell.checked = True
    sell.put()
    boxcount += 1

上面应该工作。如果不改变你的检查盒标记,那么它实际上是有价值的:

ZZU1

HTML检查盒的标准行为是,只有当检查盒是检查盒时,才公布价值。See this link for more info.