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

发布于 2024-10-25 03:21:32 字数 378 浏览 3 评论 0原文

我一直在尝试使用金字塔框架制作带有复选框和单选按钮的表单,但我不知道如何正确执行。

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

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

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

I've been trying to make a form with checkboxes and radio button using Pyramid framework but I can't figure out how to do it properly.

I'm using the pyramid_simpleform. So far I've been able to put my checkboxes on the form using a for loop but I can't make any checkbox checked even if I specify checked=True.

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

I know there's a better way of doing this. Is there any examples I could look at. All the examples in pyramid's documentation are simple text fields. I didn't find any radio button or checkboxes so far.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

微暖i 2024-11-01 03:21:32

您是否尝试过将

defaults={"groups" : True}

放入 Form ctor 中,例如(在金字塔_simpleform 文档中):

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

Have you tried put

defaults={"groups" : True}

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

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

烏雲後面有陽光 2024-11-01 03:21:32

我使用 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)

I use FormRenderers to output forms and also had problems using Checkboxes. So I wrote the following class that replaces the FormRenderer from simple_form in all my views:

# -*- 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)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文