Открываем код нашего контроллера:
vi myapp/controllers/main.py
Добавляем в самый верх подключение модуля валидации:
from tw.mods.pylonshf import validate
Чуть ниже него добавляем (устанавливаем дополнительный валидатор, чтобы год точно был целым числом):
test_form = twf.TableForm('test_form', action='/main/tosca_save', children=[
twf.HiddenField('id'),
twf.TextField('title'),
twf.TextField('year', size=4, validator=twf.validators.Int),
twf.CalendarDatePicker('release_date'),
twf.SingleSelectField('genera', options=['', 'Action', 'Comedy', 'Other']),
twf.TextArea('description'),
])
Также удаляем старый метод tosca и вместо него добавляем следующее:
def tosca(self, **kw):
return test_form()
@validate(form=test_form, error_handler='index')
def tosca_save(self, **kw):
return str(kw)
То есть, если данные валидны (в поле year целое число), они будут переданы обработчику tosca_save и выданы на экран. Иначе будет сделан "редирет" (в кавычках потому что будет просто выдано его содержимое ) на index контроллер. Ну вот теперь у нас есть крайне удобный способ обработки форм без тупой рутины :)
No comments :
Post a Comment
Note: only a member of this blog may post a comment.