我一直在尝试用复选框和单选按钮创建一个使用Pyramid框架的表单,但我无法弄清楚如何正确地完成它。
我正在使用pyramid_simpleform
。到目前为止,我已经能够使用for循环将复选框放在表单上,但即使我指定checked=True
,也无法选中任何复选框。
% for item in groups:
${form.checkbox(name="groups",label=item, value=item, checked=True)}
% endfor
我知道有更好的方法可以做到这一点。有什么例子我可以看一下。金字塔文档中的所有示例都是简单的文本字段。到目前为止,我没有找到任何单选按钮或复选框。
答案 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)