Передайте пользовательский класс 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>