Ver Fonte

Merge pull request #20037 from netbox-community/19988-has_feature-invalid-objecttype

Fixes #19988: `has_feature()` should gracefully handle invalid ContentTypes
bctiemann há 6 meses atrás
pai
commit
ab8e3ee956
1 ficheiros alterados com 5 adições e 1 exclusões
  1. 5 1
      netbox/netbox/models/features.py

+ 5 - 1
netbox/netbox/models/features.py

@@ -679,10 +679,14 @@ def has_feature(model_or_ct, feature):
         ot = model_or_ct
         ot = model_or_ct
     # If a ContentType was passed, resolve its model class
     # If a ContentType was passed, resolve its model class
     elif type(model_or_ct) is ContentType:
     elif type(model_or_ct) is ContentType:
-        ot = ObjectType.objects.get_for_model(model_or_ct.model_class())
+        model_class = model_or_ct.model_class()
+        ot = ObjectType.objects.get_for_model(model_class) if model_class else None
     # For anything else, look up the ObjectType
     # For anything else, look up the ObjectType
     else:
     else:
         ot = ObjectType.objects.get_for_model(model_or_ct)
         ot = ObjectType.objects.get_for_model(model_or_ct)
+    # ObjectType is invalid/deleted
+    if ot is None:
+        return False
     return feature in ot.features
     return feature in ot.features