2011-03-23 92 views
1

我一直在尝试使用复选框和单选按钮使用金字塔框架使窗体,但我不知道如何正确地做到这一点。我正在使用pyramid_simpleform。到目前为止,我已经能够使用for循环将我的复选框放在窗体上,但即使指定了checked=True,我也无法复选任何复选框。Python金字塔 - 如何使用复选框和单选按钮

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

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

回答

1

您是否尝试过把

defaults={"groups" : True}

在窗体构造函数,例如(在pyramid_simpleform DOC):

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

+0

感谢您的快速回复!我试过这个'Form(request,MySchema,defaults = {“groups”:{“admin”:True,“user”:True}})'我检查了我的复选框 – 2011-03-23 16:06:09

1

我用FormRenderers输出形式,也有使用复选框问题。所以我写了下面的类,在我所有的视图中替换了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) 
+0

...这打破了一些功能。 – born 2013-02-21 15:34:17