2011-03-23 91 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