diff --git a/app/admin.py b/app/admin.py index a67ee90..4baca75 100644 --- a/app/admin.py +++ b/app/admin.py @@ -120,8 +120,21 @@ class EnvCredentialProvider(Provider): @staticmethod def _admin_home(request: Request) -> str: - """Use trailing slash to avoid mount redirect (which may emit absolute host).""" - return request.app.admin_path.rstrip("/") + "/" + """ + Resolve a concrete admin page path. + + fastapi-admin 1.0.x does not expose a root "/" view by default; the + first usable page is a model list route: /{resource}/list. + """ + admin_path = request.app.admin_path.rstrip("/") + for resource in getattr(request.app, "resources", []): + try: + if issubclass(resource, Model): + model_name = resource.model.__name__.lower() + return f"{admin_path}/{model_name}/list" + except TypeError: + continue + return f"{admin_path}{getattr(request.app.login_provider, 'login_path', '/login')}" async def login_view(self, request: Request): return self._template_response(