1

我一直在尝试使用 Pyramid 框架制作一个带有复选框和单选按钮的表单,但我不知道如何正确地做到这一点。

我正在使用pyramid_simpleform. 到目前为止,我已经能够使用 for 循环将我的复选框放在表单上,​​但即使我指定了checked=True.

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

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

4

2 回答 2

1

Have you tried put

defaults={"groups" : True}

in Form ctor, for example (in pyramid_simpleform doc):

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

于 2011-03-23T04:32:12.313 回答
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)
于 2013-02-11T16:17:43.087 回答