diff --git a/netbox/core/forms/mixins.py b/netbox/core/forms/mixins.py
new file mode 100644
index 000000000..3e76f67a2
--- /dev/null
+++ b/netbox/core/forms/mixins.py
@@ -0,0 +1,25 @@
+from django import forms
+from django.utils.translation import gettext as _
+
+from core.models import DataFile, DataSource
+from utilities.forms.fields import DynamicModelChoiceField
+
+__all__ = (
+    'SyncedDataMixin',
+)
+
+
+class SyncedDataMixin(forms.Form):
+    data_source = DynamicModelChoiceField(
+        queryset=DataSource.objects.all(),
+        required=False,
+        label=_('Data source')
+    )
+    data_file = DynamicModelChoiceField(
+        queryset=DataFile.objects.all(),
+        required=False,
+        label=_('File'),
+        query_params={
+            'source_id': '$data_source',
+        }
+    )
diff --git a/netbox/core/forms/model_forms.py b/netbox/core/forms/model_forms.py
index 405d70437..666a19e85 100644
--- a/netbox/core/forms/model_forms.py
+++ b/netbox/core/forms/model_forms.py
@@ -2,8 +2,8 @@ import copy
 
 from django import forms
 
+from core.forms.mixins import SyncedDataMixin
 from core.models import *
-from extras.forms.mixins import SyncedDataMixin
 from netbox.forms import NetBoxModelForm
 from netbox.registry import registry
 from utilities.forms import get_field_value
diff --git a/netbox/extras/forms/mixins.py b/netbox/extras/forms/mixins.py
index 4e05e3a1e..be45f5211 100644
--- a/netbox/extras/forms/mixins.py
+++ b/netbox/extras/forms/mixins.py
@@ -1,16 +1,14 @@
-from django.contrib.contenttypes.models import ContentType
 from django import forms
+from django.contrib.contenttypes.models import ContentType
 from django.utils.translation import gettext as _
 
-from core.models import DataFile, DataSource
-from extras.models import *
 from extras.choices import CustomFieldVisibilityChoices
-from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField
+from extras.models import *
+from utilities.forms.fields import DynamicModelMultipleChoiceField
 
 __all__ = (
     'CustomFieldsMixin',
     'SavedFiltersMixin',
-    'SyncedDataMixin',
 )
 
 
@@ -74,19 +72,3 @@ class SavedFiltersMixin(forms.Form):
             'usable': True,
         }
     )
-
-
-class SyncedDataMixin(forms.Form):
-    data_source = DynamicModelChoiceField(
-        queryset=DataSource.objects.all(),
-        required=False,
-        label=_('Data source')
-    )
-    data_file = DynamicModelChoiceField(
-        queryset=DataFile.objects.all(),
-        required=False,
-        label=_('File'),
-        query_params={
-            'source_id': '$data_source',
-        }
-    )
diff --git a/netbox/extras/forms/model_forms.py b/netbox/extras/forms/model_forms.py
index bc79d8fe5..2f617b682 100644
--- a/netbox/extras/forms/model_forms.py
+++ b/netbox/extras/forms/model_forms.py
@@ -5,9 +5,9 @@ from django.db.models import Q
 from django.contrib.contenttypes.models import ContentType
 from django.utils.translation import gettext as _
 
+from core.forms.mixins import SyncedDataMixin
 from dcim.models import DeviceRole, DeviceType, Location, Platform, Region, Site, SiteGroup
 from extras.choices import *
-from extras.forms.mixins import SyncedDataMixin
 from extras.models import *
 from extras.utils import FeatureQuery
 from netbox.forms import NetBoxModelForm
diff --git a/netbox/utilities/forms/bulk_import.py b/netbox/utilities/forms/bulk_import.py
index 5538f4f0c..675f0149d 100644
--- a/netbox/utilities/forms/bulk_import.py
+++ b/netbox/utilities/forms/bulk_import.py
@@ -6,7 +6,7 @@ import yaml
 from django import forms
 from django.utils.translation import gettext as _
 
-from extras.forms.mixins import SyncedDataMixin
+from core.forms.mixins import SyncedDataMixin
 from utilities.choices import ImportFormatChoices
 from utilities.forms.utils import parse_csv
 from ..choices import ImportMethodChoices