Передайте пользовательский класс css_class для деформации Button

У меня есть базовая форма и схема..

class NewSchema(colander.MappingSchema):
        name = colander.SchemaNode(colander.String(),
            widget=text_input)

schema = NewSchema()
myform = Form(schema, buttons=('submit'))

Теперь это работает нормально, однако я хочу передать пользовательский класс CSS на кнопку отправки, я бы ожидал сделать следующее:

schema = PaymentSchema()
myform = Form(schema, buttons=('submit', css_class="someclass"))

Но это не работает, как я могу передать этот атрибут класса такой кнопке?

РЕДАКТИРОВАТЬ: Я также пытался:

butt = deform_form.Button(name='submita', css_class="test")
schema = PaymentSchema()
myform = Form(schema, buttons=(butt,))

Что делает HTML

<div class="actions">

    <button
        id="deformsubmita"
        name="submita"
        type="submit"
        class="btn btnText submit primaryAction"
        value="submita"

        >
    <span>Submita</span>
    </button>

</div>

1 ответ

Ваш первый пример кода не будет работать, второй находится на правильном пути, но может иметь опечатку в имени класса кнопки деформации. Сравните ваш с моим. Вы почти получили это, продолжайте пытаться.

В соответствии с API документы передают либо последовательность строк, либо последовательность объектов кнопок.

кнопки

Последовательность строк или объектов deform.form.Button, представляющих кнопки отправки, которые будут размещены в нижней части формы. Если в последовательности передается какая-либо строка, она преобразуется в объекты deform.form.Button.

Поэтому я создаю одну кнопку с примененным классом CSS и передаю ее в кортеже параметру buttons при создании формы. Этот пример использует deform2.0a2

class WikiViews(object):
    def __init__(self, request):
        self.request = request

    @property
    def wiki_form(self):
        schema = WikiPage()
        submit = deform.Button(name='submit', css_class='red')
        return deform.Form(schema, buttons=(submit,))

    @view_config(route_name='wikipage_add',
             renderer='deform2_demo:templates/wikipage_addedit.pt')
    def wikipage_add(self):
        form = self.wiki_form.render()
        ... 

deform отображает это в HTML:

    <form id="deform" method="POST" enctype="multipart/form-data" accept-charset="utf-8" class="deform">

      <fieldset class="deformFormFieldset">   

        <input type="hidden" name="_charset_">
        <input type="hidden" name="__formid__" value="deform">

         <div class="form-group  item-title" title="" id="item-deformField1">    
           <label for="deformField1" class="control-label required" id="req-deformField1">Title</label>    
           <input type="text" name="title" value="" id="deformField1" class=" form-control ">

         </div>

         <!-- removed HTML for more deform fields -->

         <div class="form-group">
           <button id="deformsubmit" name="submit" type="submit" class="btn btn-primary red" value="submit">Submit</button>

         </div>
      </fieldset>

    </form>
Другие вопросы по тегам