{"id":9180,"library":"piccolo-admin","title":"Piccolo Admin","description":"Piccolo Admin is a powerful and modern admin interface / CMS for Python, currently at version 1.13.0. It is built on top of the Piccolo ORM and works seamlessly with ASGI frameworks like FastAPI and Starlette. The library is actively maintained with regular updates, often coinciding with new releases of the core Piccolo ORM library.","status":"active","version":"1.13.0","language":"en","source_language":"en","source_url":"https://github.com/piccolo-orm/piccolo_admin","tags":["admin panel","cms","fastapi","starlette","orm","piccolo","asgi"],"install":[{"cmd":"pip install piccolo-admin","lang":"bash","label":"Base installation"},{"cmd":"pip install \"piccolo-admin[fastapi,uvicorn]\"","lang":"bash","label":"With FastAPI and Uvicorn"}],"dependencies":[{"reason":"Piccolo Admin is built directly on top of the Piccolo ORM and requires it.","package":"piccolo","optional":false},{"reason":"Optional dependency for integrating Piccolo Admin with FastAPI applications.","package":"fastapi","optional":true},{"reason":"Optional dependency for integrating Piccolo Admin with Starlette applications.","package":"starlette","optional":true},{"reason":"ASGI server commonly used to run Piccolo Admin with frameworks like FastAPI or Starlette.","package":"uvicorn","optional":true}],"imports":[{"note":"The primary entry point for instantiating the admin interface.","symbol":"create_admin","correct":"from piccolo_admin.endpoints import create_admin"},{"note":"Used for defining custom forms within the admin interface, often with Pydantic models.","symbol":"FormConfig","correct":"from piccolo_admin.endpoints import FormConfig"}],"quickstart":{"code":"# 1. Install Piccolo Admin with its demo dependencies:\npip install piccolo-admin admin_demo\n\n# 2. Run the demo application:\npython -m admin_demo\n\n# 3. Open your browser to http://localhost:8000/admin/\n#    Login with username: piccolo, password: piccolo123","lang":"bash","description":"This quickstart demonstrates how to run a local demo instance of Piccolo Admin, including a pre-configured database and sample data, using the `admin_demo` package. This allows you to quickly explore the features without writing any code."},"warnings":[{"fix":"Upgrade your Python environment to version 3.9 or higher.","message":"Python 3.8 support was dropped in Piccolo Admin version 1.12.0. Users on Python 3.8 or older should upgrade their Python version to continue receiving updates.","severity":"breaking","affected_versions":">=1.12.0"},{"fix":"Upgrade to Piccolo Admin version 1.3.2 or above. It's recommended to update to the latest version for all security patches.","message":"An SVG loading vulnerability (GHSA-pmww-v6c9-7p83) in Piccolo Admin allowed for arbitrary access to admin page data and actions if SVG uploads were enabled.","severity":"gotcha","affected_versions":"1.2.0 to 1.3.1"},{"fix":"Ensure `APP_REGISTRY` is configured and run `piccolo migrations forwards all` to apply necessary database schemas, including `BaseUser`.","message":"For Piccolo Admin's session authentication to work correctly, `piccolo_admin.piccolo_app` must be added to the `APP_REGISTRY` in your `piccolo_conf.py` and database migrations must be run (e.g., `piccolo migrations forwards session_auth`).","severity":"gotcha","affected_versions":"All versions"},{"fix":"Review table schemas for problematic column names (prefer snake_case) and ensure primary key configurations are standard or handled through custom forms if necessary. Check GitHub discussions for specific workarounds.","message":"Issues can arise when adding or editing rows for tables with complex schemas, especially with camelCase column names or non-default primary keys, which may prevent data from being saved correctly.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"last_verified":"2026-04-16T00:00:00.000Z","next_check":"2026-07-15T00:00:00.000Z","problems":[{"fix":"1. Add `piccolo_admin.piccolo_app` to your `APP_REGISTRY`. 2. Run `piccolo migrations forwards all`. 3. Create an admin user via CLI: `piccolo user create`.","cause":"The `piccolo_admin.piccolo_app` is not registered in `APP_REGISTRY` in `piccolo_conf.py`, or database migrations for session authentication have not been applied, or no admin user has been created.","error":"Unable to login to piccolo_admin"},{"fix":"Check the server logs for detailed traceback. Ensure all required fields are populated. For complex schemas, consider creating custom forms using `FormConfig` for better control over validation and data handling.","cause":"This often occurs with complex table schemas where a required field is left empty, or there's a validation error, or a non-standard column name (e.g., camelCase) is causing parsing issues in the frontend or backend.","error":"HTTP 500 error when trying to add/update rows in admin panel"}]}