Python pyramid - Как использовать флажки и переключатели - PullRequest
1 голос
/ 23 марта 2011

Я пытался создать форму с флажками и переключателем, используя платформу Pyramid, но я не могу понять, как это сделать правильно.

Я использую pyramid_simpleform.До сих пор я был в состоянии поставить свои флажки на форме, используя цикл for, но я не могу установить ни один флажок, даже если я укажу checked=True.

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

Я знаю, что есть лучший способделать это.Есть ли примеры, на которые я мог бы взглянуть?Все примеры в документации пирамиды представляют собой простые текстовые поля.Пока я не нашел ни радио-кнопки, ни флажков.

Ответы [ 2 ]

1 голос
/ 11 февраля 2013

Я использую FormRenderers для вывода форм, а также были проблемы с использованием флажков.Поэтому я написал следующий класс, который заменяет FormRenderer из simple_form во всех моих представлениях:

# -*- 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)
1 голос
/ 23 марта 2011

Вы пробовали поставить

defaults={"groups" : True}

в форме ctor, например (в документе pyramid_simpleform):

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

...