FastAdmin is an open-source, MIT-licensed Python library that generates a Django-Admin-style CRUD admin dashboard for FastAPI, Flask, and Django applications directly from your ORM models.
What is FastAdmin?
FastAdmin is a pip-installable package (fastadmin) that turns existing ORM models into a production-ready admin interface with list views, forms, authentication, and dashboard charts. It accepts models from Tortoise ORM, Django ORM, SQLAlchemy (async), Pony ORM, or Yara ORM and outputs a mountable admin sub-app for FastAPI, Flask, or Django. The package is developed by vsdudakov, is fully typed, and ships with a pre-built React (Vite + Ant Design) frontend, so no Node.js toolchain is required to run it.
Key Features
FastAdmin stands out by combining a Django-Admin-style API with framework-agnostic mounting and five ORM backends.
- Django-Admin-style API — Use familiar attributes like
list_display,list_filter,search_fields,fieldsets,readonly_fields, inlines, and actions to configure your admin classes. - Any web framework — Mount FastAdmin as a FastAPI sub-app, a Flask blueprint, or Django urlpatterns with a few lines of code.
- Any ORM — First-class admin classes exist for Tortoise ORM, Django ORM, SQLAlchemy (async), Pony ORM, and Yara ORM.
- Authentication and permissions — Pluggable sign-in against your own user model, per-action permission hooks, and request/user context available in every admin method.
- Rich form widgets — 20+ Ant Design widgets including rich text, JSON, async select, phone, slug, date/time pickers, switches, and radio groups, configured via
formfield_overrides. - File and image uploads — A storage-agnostic
upload_filehook plus presigned-URL support throughget_file_urlworks with local disk, S3, or other backends. - Dashboard widgets — Declarative line, area, column, bar, and pie charts and action widgets with filters, powered by Ant Design charts.
- Bulk actions and export — Custom bulk actions and built-in CSV/JSON export.
Who is it for?
FastAdmin suits any Python project that needs an admin interface but does not want to build one from scratch.
- FastAPI developers who want a Django-Admin-style back office without building one from scratch.
- Flask teams that need an admin UI on SQLAlchemy models and prefer a Flask blueprint mount.
- Django projects that want a modern React-based admin instead of the default Django admin.
- Small products and internal tools that need quick CRUD management with authentication and export.
What can you do with FastAdmin?
FastAdmin lets you ship a full-featured admin panel with a few lines of code.
- Add an admin panel to an existing app — Register your models and mount the admin sub-app at
/adminin minutes. - Integrate custom authentication — Override
authenticateandchange_passwordto reuse your existing user model and password hashing. - Export data — Use built-in CSV/JSON export for any registered model.
- Build custom dashboards — Compose charts and action widgets declaratively for your home page.
How does FastAdmin work?
Install FastAdmin with the extras matching your stack, for example pip install fastadmin[fastapi,tortoise-orm], then set the required environment variables (ADMIN_USER_MODEL, ADMIN_USER_MODEL_USERNAME_FIELD, and ADMIN_SECRET_KEY). Next, define an admin class per model using @register and the appropriate base class such as TortoiseModelAdmin, and mount the provided FastAPI, Flask, or Django app into your project.
FAQ
Is FastAdmin free?
Yes, FastAdmin is released under the MIT License, so it is free to use and modify.
Does FastAdmin require Node.js?
No. The React frontend is pre-built and bundled with the pip package, so you do not need Node.js at install time.
Which Python versions are supported?
The PyPI badge on the project page indicates Python 3.12+.
Can I use FastAdmin with Flask and SQLAlchemy?
Yes, the installation section includes pip install fastadmin[flask,sqlalchemy], which also installs greenlet for async support.








