wtforms/wtforms

Support for async validation mechanisms

simonw opened this issue · 0 comments

I found myself wanting to add a custom validator to a form that makes an asynchronous HTTP request (using httpx) to confirm that a provided URL was valid - but realized that wtforms currently only supports blocking synchronous functions for validators.

There is a project that extends wtforms to work with async, but it's packaged for Starlette which I'm not using here: https://github.com/kubetail-org/starlette-wtf/blob/master/starlette_wtf/form.py

It would be great if wtforms provided an async validation mechanism in the default package. It's an increasingly common pattern thanks to the popularity of projects like Starlette and FastAPI. My own Datasette package uses async and has recently adopted wtforms for the enrichments feature, which is how I found this limitation.