diff --git a/README.md b/README.md index 648f72b..82b3d31 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Based on [Officially Supported Databases](https://docs.djangoproject.com/en/3.0/ pip install casbin-django-orm-adapter ``` -Add `casbin_adapter.apps.CasbinAdapterConfig` to your `INSTALLED_APPS` +Add `casbin_adapter` to your `INSTALLED_APPS` ```python # settings.py @@ -36,7 +36,7 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) INSTALLED_APPS = [ ... - 'casbin_adapter.apps.CasbinAdapterConfig', + 'casbin_adapter', ... ] diff --git a/casbin_adapter/apps.py b/casbin_adapter/apps.py index 2674874..28d3b75 100644 --- a/casbin_adapter/apps.py +++ b/casbin_adapter/apps.py @@ -6,7 +6,5 @@ class CasbinAdapterConfig(AppConfig): name = "casbin_adapter" def ready(self): - from .enforcer import initialize_enforcer - - db_alias = getattr(settings, "CASBIN_DB_ALIAS", "default") - initialize_enforcer(db_alias) + from .enforcer import enforcer + enforcer.db_alias = getattr(settings, "CASBIN_DB_ALIAS", "default") diff --git a/casbin_adapter/enforcer.py b/casbin_adapter/enforcer.py index 70d2eaf..4e0d583 100644 --- a/casbin_adapter/enforcer.py +++ b/casbin_adapter/enforcer.py @@ -43,9 +43,9 @@ def _load(self): self.set_role_manager(role_manager) def __getattribute__(self, name): - safe_methods = ["__init__", "_load", "_initialized"] + safe_methods = ["__init__", "__class__", "_load", "_initialized", "db_alias"] if not super().__getattribute__("_initialized") and name not in safe_methods: - initialize_enforcer(self.db_alias) + initialize_enforcer(super().__getattribute__("db_alias")) if not super().__getattribute__("_initialized"): raise Exception( (