Merge pull request #21328 from netbox-community/21327-ContentTypeField-caching

Closes #21327: Leverage `get_by_natural_key()` to resolve ContentTypes
This commit is contained in:
bctiemann
2026-02-02 13:46:04 -05:00
committed by GitHub
+2 -1
View File
@@ -1,3 +1,4 @@
from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.db.backends.postgresql.psycopg_any import NumericRange from django.db.backends.postgresql.psycopg_any import NumericRange
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
@@ -109,7 +110,7 @@ class ContentTypeField(RelatedField):
def to_internal_value(self, data): def to_internal_value(self, data):
try: try:
app_label, model = data.split('.') app_label, model = data.split('.')
return self.queryset.get(app_label=app_label, model=model) return ContentType.objects.get_by_natural_key(app_label=app_label, model=model)
except ObjectDoesNotExist: except ObjectDoesNotExist:
self.fail('does_not_exist', content_type=data) self.fail('does_not_exist', content_type=data)
except (AttributeError, TypeError, ValueError): except (AttributeError, TypeError, ValueError):