Python金字塔 - 如何使用复选框和单选按钮

时间:2011-03-23 03:01:36

标签: python pylons pyramid

我一直在尝试用复选框和单选按钮创建一个使用Pyramid框架的表单,但我无法弄清楚如何正确地完成它。

我正在使用pyramid_simpleform。到目前为止,我已经能够使用for循环将复选框放在表单上,​​但即使我指定checked=True,也无法选中任何复选框。

% for item in groups:
${form.checkbox(name="groups",label=item, value=item, checked=True)}
% endfor

我知道有更好的方法可以做到这一点。有什么例子我可以看一下。金字塔文档中的所有示例都是简单的文本字段。到目前为止,我没有找到任何单选按钮或复选框。

2 个答案:

答案 0 :(得分:1)

你试过吗

defaults={"groups" : True}

在Form ctor中,例如(在pyramid_simpleform doc中):

form = Form(request, MySchema, defaults={"name" : "foo"})

答案 1 :(得分:1)

我使用FormRenderers输出表单,并且在使用Checkbox时也遇到了问题。所以我写了下面的类,在我的所有视图中用simple_form替换FormRenderer:

# -*- coding: utf-8 -*-
from pyramid_simpleform.renderers import FormRenderer as OldFormRenderer
from webhelpers.html import tags

class FormRenderer(OldFormRenderer):
    def checkbox(self, name, value="1", checked=False, label=None, id=None, 
             **attrs):
        """
        Outputs checkbox input.
        """
        id = id or name
        return tags.checkbox(name, value, checked, label, id, **attrs)