Install & Compatibility
Where this runs
tested against v0.4.2 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.930s · 44.2MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 3.4s · import 0.832s · 42MB
42MB installed
● package 42MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
QuerySelectField
✓ from wtforms_sqlalchemy.fields import QuerySelectField
✗ from wtforms.ext.sqlalchemy.fields import QuerySelectField
Old path from Flask-WTF; removed in wtforms-sqlalchemy 0.4
ModelForm
✓ from wtforms_sqlalchemy.orm import model_form
✗ from flask_wtf import FlaskForm
ModelForm class replaced by model_form factory function
Create a form model from a SQLAlchemy declarative model using model_form.
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import DeclarativeBase
from wtforms import Form, StringField
from wtforms_sqlalchemy.orm import model_form
class Base(DeclarativeBase):
pass
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
engine = create_engine('sqlite:///:memory:', echo=False)
Base.metadata.create_all(engine)
UserForm = model_form(User, base_class=Form, exclude=['id'])
form = UserForm(data={'name': 'Alice'})
print(form['name'].data) # Alice
Errors
Common errors & fixes
ImportError: cannot import name 'QuerySelectField' from 'wtforms.ext.sqlalchemy'
Old import path from Flask-WTF; removed in wtforms-sqlalchemy 0.4
fixUse 'from wtforms_sqlalchemy.fields import QuerySelectField'
TypeError: 'BaseQuery' object is not callable
Passing a static query object instead of a callable query factory to QuerySelectField
fixUse query_factory=lambda: session.query(Model) or query_factory=Model.query (if Flask-SQLAlchemy)
AttributeError: module 'wtforms_sqlalchemy' has no attribute 'orm'
Installed version is too old (pre-0.4) or installation is incomplete
fixUpdate to >=0.4.2: pip install --upgrade wtforms-sqlalchemy
Upgrade
Version history
0.4.2latest on PyPI · released Oct 25, 2024
Audit
Dependencies
SQLAlchemyrequiredCore dependency
WTFormsrequiredCore dependency