Jelajahi Sumber

fixes content type lookups when db is uninitialized #13116

Abhimanyu Saharan 2 tahun lalu
induk
melakukan
bc7678c716
1 mengubah file dengan 8 tambahan dan 1 penghapusan
  1. 8 1
      netbox/extras/querysets.py

+ 8 - 1
netbox/extras/querysets.py

@@ -2,6 +2,7 @@ from django.apps import apps
 from django.contrib.contenttypes.models import ContentType
 from django.contrib.postgres.aggregates import JSONBAgg
 from django.db.models import OuterRef, Subquery, Q
+from django.db.utils import ProgrammingError
 
 from extras.models.tags import TaggedItem
 from utilities.query_functions import EmptyGroupByJSONBAgg
@@ -160,7 +161,13 @@ class ObjectChangeQuerySet(RestrictedQuerySet):
     def valid_models(self):
         # 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.
+        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(
-            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)