For form validation in pyramid framework there is FormEncode package. FormEncode is a validation and form generation package. pyramid_simpleform is a add-on for pyramid framework and uses FormEncode.
SimpleForm in Pyramid Applications: install with easy_install:
$ easy_install pyramid_simpleform
In your controller code FormEncode Schema:
class CategoryForm(Schema): filter_extra_fields = True allow_extra_fields = True # category name not empty name = validators.String(not_empty=True) # edit function with form.validate() @view_config(route_name="category_edit", renderer="category/edit.html") def edit(request): """category edit """ id = request.matchdict['id'] dbsession = DBSession() category = dbsession.query(Category).filter_by(id=id).one() if category is None: request.session.flash("error;Category not found!") return HTTPFound(location=request.route_url("category_list")) form = Form(request, schema=CategoryForm, obj=category) if "form_submitted" in request.POST and form.validate(): form.bind(category) dbsession.add(category) request.session.flash("warning;The Category is saved!") return HTTPFound(location = request.route_url("category_list")) action_url = request.route_url("category_edit", id=id) return dict(form=FormRenderer(form), action_url=action_url)
See please full customers app code for template details.