{"id":9453,"library":"allianceauth-app-utils","title":"AllianceAuth App Utilities","description":"AllianceAuth App Utilities (allianceauth-app-utils) is a Python library providing commonly used utilities and helpers for rapid development of Alliance Auth applications. It streamlines common tasks like handling app settings, user roles, and Django views. The current version is 1.30.1, with updates typically coinciding with or shortly after Alliance Auth and Django releases, maintaining active development.","status":"active","version":"1.30.1","language":"en","source_language":"en","source_url":"https://github.com/pvyParts/allianceauth-app-utils","tags":["django","allianceauth","utilities","app development","auth"],"install":[{"cmd":"pip install allianceauth-app-utils","lang":"bash","label":"Install latest version"}],"dependencies":[{"reason":"Base framework dependency for any Alliance Auth app. Requires Django >=4.2, <5.1.","package":"Django","optional":false},{"reason":"Core Alliance Auth framework, providing base functionality. Requires allianceauth >=3.1.0, <4.0.","package":"allianceauth","optional":false}],"imports":[{"note":"Old path from when utilities were part of the main Alliance Auth package (prior to v1.0.0).","wrong":"from allianceauth.utils.app_settings import get_app_settings","symbol":"get_app_settings","correct":"from allianceauth_app_utils.app_settings import get_app_settings"},{"symbol":"AuthRequiredMixin","correct":"from allianceauth_app_utils.views import AuthRequiredMixin"},{"symbol":"BaseAuthAppConfig","correct":"from allianceauth_app_utils.base_roles import BaseAuthAppConfig"},{"symbol":"register_permissions_delegate","correct":"from allianceauth_app_utils.signals import register_permissions_delegate"}],"quickstart":{"code":"# my_app/views.py\nfrom django.shortcuts import render\nfrom django.views import View\nfrom allianceauth_app_utils.app_settings import get_app_settings\nfrom allianceauth_app_utils.views import AuthRequiredMixin\n\nclass MyProtectedView(AuthRequiredMixin, View):\n    # Optional: Define permissions required for this view\n    # required_permissions = ['my_app.can_view_dashboard']\n\n    def get(self, request):\n        # Replace 'my_app' with your actual Django app label\n        # Ensure APP_SETTINGS is configured in your project's settings.py\n        app_settings = get_app_settings('my_app') \n        example_setting = app_settings.get('MY_EXAMPLE_SETTING', 'Default Value')\n        context = {\n            'username': request.user.username,\n            'example_setting': example_setting\n        }\n        return render(request, 'my_app/dashboard.html', context)\n\n# --- Example settings.py entry ---\n# APP_SETTINGS = {\n#     'my_app': {\n#         'MY_EXAMPLE_SETTING': 'Configured Value From Settings'\n#     }\n# }","lang":"python","description":"This quickstart demonstrates using `AuthRequiredMixin` to create a view that requires Alliance Auth authentication and retrieves app-specific settings via `get_app_settings`. Remember to configure `APP_SETTINGS` in your Django project's `settings.py`."},"warnings":[{"fix":"Upgrade your Django project to Django 4.2 or newer, or pin `allianceauth-app-utils` to a version < 1.29.0 (e.g., `allianceauth-app-utils<1.29.0`).","message":"Versions of `allianceauth-app-utils` >= 1.29.0 require Django >= 4.2. Support for Django 3.2 was dropped. Ensure your Django version is compatible.","severity":"breaking","affected_versions":">=1.29.0"},{"fix":"Upgrade your Python environment to 3.9 or newer, or pin `allianceauth-app-utils` to a version < 1.28.0 (e.g., `allianceauth-app-utils<1.28.0`).","message":"Versions of `allianceauth-app-utils` >= 1.28.0 require Python >= 3.9. Support for Python 3.8 was dropped. Ensure your Python environment meets this requirement.","severity":"breaking","affected_versions":">=1.28.0"},{"fix":"Update all imports from `allianceauth.utils.*` to `allianceauth_app_utils.*` (e.g., `from allianceauth.utils.app_settings import get_app_settings` becomes `from allianceauth_app_utils.app_settings import get_app_settings`).","message":"Prior to version 1.0.0, many utilities were part of the main `allianceauth` package (`allianceauth.utils`). All imports for this library should now come from `allianceauth_app_utils`.","severity":"breaking","affected_versions":"<1.0.0 (and subsequent migration)"},{"fix":"Add a dictionary entry for your app label within `APP_SETTINGS` in your `settings.py`. Example: `APP_SETTINGS = {'my_app': {'MY_SETTING': 'value'}}`.","message":"Custom settings for your app, retrieved by `get_app_settings()`, must be defined in your project's `settings.py` under the `APP_SETTINGS` dictionary. If not defined, `get_app_settings` will return an empty dictionary or default values.","severity":"gotcha","affected_versions":"All"}],"env_vars":null,"last_verified":"2026-04-17T00:00:00.000Z","next_check":"2026-07-16T00:00:00.000Z","problems":[{"fix":"Update imports to use the correct `allianceauth_app_utils` package. For example, change `from allianceauth.utils.app_settings import get_app_settings` to `from allianceauth_app_utils.app_settings import get_app_settings`.","cause":"Attempting to import utilities from the deprecated `allianceauth.utils` path, which was split into `allianceauth-app-utils`.","error":"ModuleNotFoundError: No module named 'allianceauth.utils.app_settings'"},{"fix":"Upgrade your Django installation to version 4.2 or newer (`pip install Django>=4.2,<5.0`). Alternatively, if you must use an older Django, pin `allianceauth-app-utils` to a compatible version (e.g., `pip install allianceauth-app-utils<1.29.0`).","cause":"Your current Django version is older than 4.2, which is no longer supported by `allianceauth-app-utils` versions >= 1.29.0.","error":"ERROR: Package 'allianceauth-app-utils' requires Django>=4.2.0, but you have Django X.Y.Z which is incompatible."},{"fix":"Upgrade your Python environment to version 3.9 or newer. Alternatively, if you must use an older Python, pin `allianceauth-app-utils` to a compatible version (e.g., `pip install allianceauth-app-utils<1.28.0`).","cause":"Your current Python environment is older than 3.9, which is no longer supported by `allianceauth-app-utils` versions >= 1.28.0.","error":"ImproperlyConfigured: This version of allianceauth-app-utils requires Python >= 3.9.0. You are running X.Y.Z."}]}