>To me it seems like it should be an error if there's no validation_error >method and any validators are given. This way the error is caught early >during development.
Yes, but there are sometimes(many times I would say) "soft-errors" that don't need this kind of handling. A typical case would be the fields may come in as nothing(None) which can be a don't care and proceed. defining validation_error would grab the control of it without giving it a chance to go on. And I re-read the code, what validation_error received is not the original function, but the name of the function, making calling it back a bit difficult.

