У меня есть существующий (WIP) проект пирамиды, при этом упрощенные формы выполняются вручную. Поскольку требования пользователей неуклонно возрастали по сложности, я хотел интегрировать деформированные формы, чтобы упростить мои собственные задачи обслуживания/программирования.Добавление формы деформирования в существующую страницу (шаблон шаблона mako) не вызывается?
Мой первоначальный тест состоял в том, чтобы попытаться создать межполевую форму [1], цель которой заключается в том, чтобы определенная дата предшествовала другой дате в форме. Вот упрощенное определение схемы и валидатор: -
class Schema(colander.MappingSchema):
startdate = colander.SchemaNode(colander.Date())
enddate = colander.SchemaNode(colander.Date())
def validator(form, value):
if value['enddate'] - value['startdate'] < 0:
exc = colander.Invalid(form, 'Start date must precede End date')
exc['enddate'] = 'Must be after %s' % value['startdate']
raise exc
schema = Schema(validator=validator)
form = deform.Form(schema, buttons=('submit',))
Я затем передать форму на мой мако шаблон и назвать: -
${form.render() | n}
Это делает форму должным образом, и мои даты селекторы работают (конечно, после того, как мне пришлось возиться с загрузкой правильных CSS и javascripts). Однако нажатие кнопки «Отправить» не выполняет никаких проверок (даже базовое «вы не указали значение»), вместо этого оно возвращается к моему view_config.
Что я могу пропустить?
[1] - http://deformdemo.repoze.org/interfield/
Пожалуйста, см деформировать README для пример, как писать формы деформирования https://h11.readthedocs.io/en/latest/ –
Довольно уверен, что вы отправили неправильную ссылку? http://docs.pylonsproject.org/projects/deform/en/latest/index.html - это тот, который я использовал, но пропустил часть проверки. –