adminsite
An admin panel for the SQLAlchemy 2.0 ORM that works with FastAPI, Starlette and Litestar.
Live demo · Documentation · Changelog · Discussions · For AI assistants
Installation
pip install adminsite
Add the driver your database needs, such as asyncpg or aiosqlite.
Usage
from adminsite import Admin, Link, ModelView
class OrderView(ModelView[Order]):
fields = [Order.id, Order.customer, Order.status, Order.total]
searchable_fields = [
Link(Order.customer, Customer.name),
Link(Order.customer, Customer.email),
]
list_filters = [Order.status, Order.created_at]
app.mount("/admin", Admin(engine, views=[OrderView]))
The settings name your models' own attributes, so a type checker catches a misspelt one. The labels, filters, form controls and validation come from your models. Getting started builds a working admin in one file.
Features
- Lists with search, sorting, saved views, editing in the list and auto refresh.
- Filters for text, numbers, dates, choices and related records, plus custom filters.
- Forms and record pages laid out in panels, rows and tabs.
- Related records picked from a searchable list, and child rows edited inside the parent's form.
- JSON columns edited as a form built from a Pydantic model or a TypedDict.
- File and image uploads, stored on disk or wherever you choose.
- Custom actions on the selected rows, every row the filters match, one record or the whole table.
- Hooks that run in the same transaction as a save or delete, and can refuse it.
- Permissions for each model, action, field and row.
- Built-in sign in, with users from your own user table.
- Audit log of who changed what and when, with a history on every record.
- Import from CSV or Excel with a preview, and export to CSV.
- JSON API with the same permissions as the pages.
- Dashboard, Ctrl K search and custom pages.
- Light and dark themes, compact mode and a mobile layout.
- Keyboard and screen reader support.
- Translations into eleven languages, some right to left, and times in each reader's time zone.
- Async or sync engines on SQLite, Postgres and MySQL, with no N+1 queries.
- SQLModel models work too.
- Fast on large tables: counts can be estimated or skipped, and page 400 loads as fast as page 1.
- No Node and no CDN: everything ships inside the package.
Motivation
Our business ran its back office on sqladmin, and then on starlette-admin. We needed features neither had, and in the end I had changed starlette-admin so much that turning it into pull requests would have taken more time than I had. So I built adminsite on what we learned from both, with everything our team needs.
It is not a side project. Our back office runs on it every day, and I keep developing it. An admin panel is not what sets our business apart, so it is open source, for anyone to use and improve.
adminsite is for SQLAlchemy only, and will stay that way. SQLModel models work too, since they are SQLAlchemy models, but I do not use SQLModel myself. If you do, reports and fixes are welcome.
Documentation
- Getting started builds a working admin in one file.
- Views covers everything a view can say about a model.
- Permissions is worth reading before you put the admin in front of anyone.
- The reference lists every class and option.
Contributing
Ask a question or share an idea in Discussions. Issues and pull requests are welcome. CONTRIBUTING.md says how to run the tests and rebuild the stylesheet.
License
Metadata
Release files for adminsite 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| adminsite-0.4.1.tar.gz | 1.6 MB | With provenance | Details for adminsite-0.4.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| adminsite-0.4.1-py3-none-any.whl | Python 3 | none | any | Details for adminsite-0.4.1-py3-none-any.whl |
Total release size: 2.1 MB
Release files / adminsite-0.4.1.tar.gz
| Download URL | adminsite-0.4.1.tar.gz |
|---|---|
| Size | 1.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
949d249ccd3c29ac47160e8c151a10af364660134294b6daff381ffd441af02e
|
|
BLAKE2b-256 checksum How to use checksums |
4a429655a624b50ccf192ad833395d5ebc3f5770506b9124f942ef33ecb4e416
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logRelease files / adminsite-0.4.1-py3-none-any.whl
| Download URL | adminsite-0.4.1-py3-none-any.whl |
|---|---|
| Size | 513.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d73fd5b70b5d887081bf45e411f366167ce4b82f50933eea72d3b77841431cb5
|
|
BLAKE2b-256 checksum How to use checksums |
c51b4fa13fdedcf42d7302de8084dd393d3e65d9829d875189b801fae577de9e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logSecurity for adminsite 0.4.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for adminsite-0.4.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.