@view_config(renderer="templates/form.pt", name="interfield")
@demonstrate("Inter-Field Validation")
def interfield(self):
class Schema(colander.Schema):
name = colander.SchemaNode(
colander.String(), description="Content name"
)
title = colander.SchemaNode(
colander.String(),
description="Content title (must start with content name)",
)
def validator(form, value):
if not value["title"].startswith(value["name"]):
exc = colander.Invalid(form, "Title must start with name")
exc["title"] = "Must start with name %s" % value["name"]
raise exc
schema = Schema(validator=validator)
form = deform.Form(schema, buttons=("submit",))
return self.render_form(form)