ソースを参照

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

Closes #21327: Leverage `get_by_natural_key()` to resolve ContentTypes
bctiemann 1 週間 前
コミット
96f0debe6e
1 ファイル変更2 行追加1 行削除
  1. 2 1
      netbox/netbox/api/fields.py

+ 2 - 1
netbox/netbox/api/fields.py

@@ -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):