mirror of
https://github.com/jazzband/django-auditlog.git
synced 2026-03-16 22:20:26 +00:00
Use getattr() with default value in get_logentry_model() to handle cases where conf.py hasn't been imported yet due to import order. Adds regression test to verify the fix.
24 lines
779 B
Python
24 lines
779 B
Python
from __future__ import annotations
|
|
|
|
from importlib.metadata import version
|
|
|
|
from django.apps import apps as django_apps
|
|
from django.conf import settings
|
|
from django.core.exceptions import ImproperlyConfigured
|
|
|
|
__version__ = version("django-auditlog")
|
|
|
|
|
|
def get_logentry_model():
|
|
model_string = getattr(settings, "AUDITLOG_LOGENTRY_MODEL", "auditlog.LogEntry")
|
|
try:
|
|
return django_apps.get_model(model_string, require_ready=False)
|
|
except ValueError:
|
|
raise ImproperlyConfigured(
|
|
"AUDITLOG_LOGENTRY_MODEL must be of the form 'app_label.model_name'"
|
|
)
|
|
except LookupError:
|
|
raise ImproperlyConfigured(
|
|
"AUDITLOG_LOGENTRY_MODEL refers to model '%s' that has not been installed"
|
|
% model_string
|
|
)
|