Breaking changes from v1.6.1:
- Removed support for Python <3.10
- Use of the
botolibrary has been replaced byboto3. S3FileAdmin and S3Storage now accept ans3_clientparameter taking aboto3.client('s3')instance rather thanaws_access_key_id,aws_secret_access_key, andregionparameters. - Azure Blob Storage SDK has been upgraded from the legacy version (v2) to the latest version (v12). AzureFileAdmin now accept
blob_service_clientrather thanconnection_stringto give more flexibility with connection types. - Flask-BabelEx is no longer supported; the package is no longer maintained and Flask-Babel is recommended/active instead.
- Mongoengine support in Flask-Admin no longer uses Flask-Mongoengine, as that library is no longer actively maintained.
- Bootstrap2 and Bootstrap3 themes are no longer available.
Admin()now takes athemeparameter that encapsulates all of the configuration options for theming the admin instance. This replaces thetemplate_modeparameter.- All remaining Flask-Admin config has been namespaced under
FLASK_ADMIN_.
| Config variable name | What's changed |
|---|---|
| FLASK_ADMIN_SWATCH | Removed; use Theme(swatch=...) instead |
| FLASK_ADMIN_FLUID_LAYOUT | Removed; use Theme(fluid=...) instead |
| MAPBOX_MAP_ID | Renamed to FLASK_ADMIN_MAPBOX_MAP_ID |
| MAPBOX_SEARCH | Renamed to FLASK_ADMIN_MAPBOX_SEARCH |
| MAPBOX_ACCESS_TOKEN | Renamed to FLASK_ADMIN_MAPBOX_ACCESS_TOKEN |
| GOOGLE_MAPS_API_KEY | Renamed to FLASK_ADMIN_GOOGLE_MAPS_API_KEY |
| DEFAULT_CENTER_LAT | Renamed to FLASK_ADMIN_DEFAULT_CENTER_LAT |
| DEFAULT_CENTER_LONG | Renamed to FLASK_ADMIN_DEFAULT_CENTER_LONG |
| ADMIN_RAISE_ON_INTEGRITY_ERROR | Renamed to FLASK_ADMIN_RAISE_ON_INTEGRITY_ERROR |
| ADMIN_RAISE_ON_VIEW_EXCEPTION | Renamed to FLASK_ADMIN_RAISE_ON_VIEW_EXCEPTION |
New functionality:
- Added support for Python <=3.13
- The default query for pymongo can be overridden
- Flask async routes are supported
- Flask-Admin now supports the
host_matchingmode of Flask apps. See documentation for how to configure this where needed. - Flask-Admin is now compatible with SQLAlchemy v2+, Flask v3+, WTForms v3+, and Pillow v10+.
- Flask-Admin now declares its dependencies and supported dependency versions more cleanly, including using pip extras. If you use Flask-Admin with SQLAlchemy, for example, you should use
pip install flask-admin[sqlalchemy]or listflask-admin[sqlalchemy]in your requirements.txt or pyproject.toml files. - Apps using content security policies to restrict the assets that can be loaded can now whitelist Flask-Admin's assets by passing a
csp_nonce_generatorfunction to the Admin instance. See examples or documentation for how to configure this where needed. page_size_optionscan now be configured on Admin models, to restrict the page sizes that users can select. These are now enforced properly and cannot be bypassed by URL hacking.
Fixes:
- Bootstrap menu icons should show up properly and not duplicated
- Redis CLI commands are now case insensitive
- SQLAlchemy boolean filters now convert "1" and "0" to Python booleans, which fixes a type coercion issue with psycopg(3).
- Jinja templates can now be loaded in StrictUndefined mode.
- Remove an implicit dependency on
packaging - Fixed an error caused by the fallback implementation of
gettext()(when used in templates) - Fixes compatibility with WTForms 3.2+.
- The
Applybutton for filters will show/hide correctly again - Fix
translations_pathattribute when Flask-Admin is used with Flask-Babel - Some translation updates.
- Date fields no longer override
widgetif set inform_args - “Save and Continue Editing” button no longer discards the “return URL” (allowing to retain filters when switching back to the list)
Misc:
- Translations and docs have been updated
- Various type hinting improvements and fixes