Skip to content

Commit 3e5b073

Browse files
committed
fix: Fixed get_admin_or_create internal logic
1 parent d6f2e17 commit 3e5b073

1 file changed

Lines changed: 7 additions & 8 deletions

File tree

fastapi_amis_admin/admin/admin.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1343,16 +1343,13 @@ def get_admin_or_create(
13431343
nested: bool = True,
13441344
) -> Optional[BaseAdminT]:
13451345
"""Get or create admin instance"""
1346-
admin = None
1347-
if admin_cls not in self._registered:
1348-
if nested:
1349-
admin = self._get_admin_or_create_nested(admin_cls)
1350-
if not register or self.__register_lock:
1351-
return None
1352-
else:
1353-
admin = self._registered.get(admin_cls)
1346+
admin = self._registered.get(admin_cls, None)
1347+
if admin is None and nested:
1348+
admin = self._get_admin_or_create_nested(admin_cls)
13541349
if admin:
13551350
return admin
1351+
if not register or self.__register_lock:
1352+
return None
13561353
# create admin instance
13571354
admin = admin_cls(self)
13581355
self._registered[admin_cls] = admin
@@ -1371,6 +1368,8 @@ def _get_admin_or_create_nested(
13711368
if not issubclass(app_cls, AdminApp):
13721369
continue
13731370
app = self.get_admin_or_create(app_cls, register=False, nested=False)
1371+
if app is None:
1372+
continue
13741373
admin = app._get_admin_or_create_nested(admin_cls)
13751374
if admin:
13761375
return admin

0 commit comments

Comments
 (0)