У меня есть z3c.form, где некоторые ошибки не могут быть известны до того, как действие формы будет выполнено. Я бы хотел показать эти ошибки в полях, а не в сообщении о состоянии глобальной формы. Как любой может конструировать и вводить ошибку виджетам в Form.update()?Ошибки в инъекционном поле в обработчике формы z3c.form
Пример:
@z3c.form.button.buttonAndHandler(_('Make Report'), name='report')
def report(self, action):
data, errors = self.extractData()
if errors:
self.status = "Please correct errors"
return
# Create sample item which we can consume in the page template
try:
self.output = make_report(self.context, self.request, data, filters=filters)
except zope.interface.Invalid as e:
self.status = e.message
self.errors = True
# How to target the error message to a particular field here
return
self.status = _(u"Report complete")
Это в основном делает то же самое, что и мой код, но жестко кодирует 'WidgetInputError()' вместо поиска адаптера. Скорее всего, это хорошо. –