mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-24 17:38:37 -06:00
fixes content type lookups when db is uninitialized #13116
This commit is contained in:
parent
63c33ff4be
commit
bc7678c716
@ -2,6 +2,7 @@ from django.apps import apps
|
|||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.contrib.postgres.aggregates import JSONBAgg
|
from django.contrib.postgres.aggregates import JSONBAgg
|
||||||
from django.db.models import OuterRef, Subquery, Q
|
from django.db.models import OuterRef, Subquery, Q
|
||||||
|
from django.db.utils import ProgrammingError
|
||||||
|
|
||||||
from extras.models.tags import TaggedItem
|
from extras.models.tags import TaggedItem
|
||||||
from utilities.query_functions import EmptyGroupByJSONBAgg
|
from utilities.query_functions import EmptyGroupByJSONBAgg
|
||||||
@ -160,7 +161,13 @@ class ObjectChangeQuerySet(RestrictedQuerySet):
|
|||||||
def valid_models(self):
|
def valid_models(self):
|
||||||
# Exclude any change records which refer to an instance of a model that's no longer installed. This
|
# Exclude any change records which refer to an instance of a model that's no longer installed. This
|
||||||
# can happen when a plugin is removed but its data remains in the database, for example.
|
# can happen when a plugin is removed but its data remains in the database, for example.
|
||||||
|
try:
|
||||||
|
content_types = ContentType.objects.get_for_models(*apps.get_models()).values()
|
||||||
|
except ProgrammingError:
|
||||||
|
# Handle the case where the database schema has not yet been initialized
|
||||||
|
content_types = ContentType.objects.none()
|
||||||
|
|
||||||
content_type_ids = set(
|
content_type_ids = set(
|
||||||
ct.pk for ct in ContentType.objects.get_for_models(*apps.get_models()).values()
|
ct.pk for ct in content_types
|
||||||
)
|
)
|
||||||
return self.filter(changed_object_type_id__in=content_type_ids)
|
return self.filter(changed_object_type_id__in=content_type_ids)
|
||||||
|
Loading…
Reference in New Issue
Block a user