Redirect admin login to first model list page

This commit is contained in:
dwindown
2026-04-01 18:23:45 +07:00
parent 9a5f4873b0
commit d8747f8c86

View File

@@ -120,8 +120,21 @@ class EnvCredentialProvider(Provider):
@staticmethod @staticmethod
def _admin_home(request: Request) -> str: 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): async def login_view(self, request: Request):
return self._template_response( return self._template_response(