diff --git a/docs/release-notes/version-2.11.md b/docs/release-notes/version-2.11.md
index 296cf085c..6516bcd29 100644
--- a/docs/release-notes/version-2.11.md
+++ b/docs/release-notes/version-2.11.md
@@ -15,6 +15,7 @@
* [#6640](https://github.com/netbox-community/netbox/issues/6640) - Disallow numeric values in custom text fields
* [#6652](https://github.com/netbox-community/netbox/issues/6652) - Fix exception when adding components in bulk to multiple devices
* [#6676](https://github.com/netbox-community/netbox/issues/6676) - Fix device/VM counts per cluster under cluster type/group views
+* [#6680](https://github.com/netbox-community/netbox/issues/6680) - Allow setting custom field values for VM interfaces on intial creation
---
diff --git a/netbox/templates/dcim/device_component_add.html b/netbox/templates/dcim/device_component_add.html
index 0b7200c1f..0937cc371 100644
--- a/netbox/templates/dcim/device_component_add.html
+++ b/netbox/templates/dcim/device_component_add.html
@@ -1,4 +1,5 @@
{% extends 'base.html' %}
+{% load helpers %}
{% load form_helpers %}
{% block title %}Create {{ component_type }}{% endblock %}
@@ -18,19 +19,34 @@
{% endif %}
- {{ component_type|title }}
+ {{ component_type|bettertitle }}
- {% render_form form %}
+ {% for field in form.hidden_fields %}
+ {{ field }}
+ {% endfor %}
+ {% for field in form.visible_fields %}
+ {% if field.name not in form.custom_fields %}
+ {% render_field field %}
+ {% endif %}
+ {% endfor %}
-
diff --git a/netbox/templates/virtualization/virtualmachine_component_add.html b/netbox/templates/virtualization/virtualmachine_component_add.html
deleted file mode 100644
index 11b120ee0..000000000
--- a/netbox/templates/virtualization/virtualmachine_component_add.html
+++ /dev/null
@@ -1,38 +0,0 @@
-{% extends 'base.html' %}
-{% load helpers %}
-{% load form_helpers %}
-
-{% block title %}Create {{ component_type }}{% endblock %}
-
-{% block content %}
-
-{% endblock %}
diff --git a/netbox/virtualization/forms.py b/netbox/virtualization/forms.py
index f6bbd5b0d..f7b241c1a 100644
--- a/netbox/virtualization/forms.py
+++ b/netbox/virtualization/forms.py
@@ -8,7 +8,8 @@ from dcim.constants import INTERFACE_MTU_MAX, INTERFACE_MTU_MIN
from dcim.forms import InterfaceCommonForm, INTERFACE_MODE_HELP_TEXT
from dcim.models import Device, DeviceRole, Platform, Rack, Region, Site, SiteGroup
from extras.forms import (
- AddRemoveTagsForm, CustomFieldBulkEditForm, CustomFieldModelCSVForm, CustomFieldModelForm, CustomFieldFilterForm,
+ AddRemoveTagsForm, CustomFieldForm, CustomFieldBulkEditForm, CustomFieldModelCSVForm, CustomFieldModelForm,
+ CustomFieldFilterForm,
)
from extras.models import Tag
from ipam.models import IPAddress, VLAN
@@ -659,7 +660,8 @@ class VMInterfaceForm(BootstrapMixin, InterfaceCommonForm, CustomFieldModelForm)
self.fields['tagged_vlans'].widget.add_query_param('available_on_virtualmachine', vm_id)
-class VMInterfaceCreateForm(BootstrapMixin, InterfaceCommonForm):
+class VMInterfaceCreateForm(BootstrapMixin, CustomFieldForm, InterfaceCommonForm):
+ model = VMInterface
virtual_machine = DynamicModelChoiceField(
queryset=VirtualMachine.objects.all()
)
@@ -723,7 +725,7 @@ class VMInterfaceCreateForm(BootstrapMixin, InterfaceCommonForm):
self.fields['tagged_vlans'].widget.add_query_param('available_on_virtualmachine', vm_id)
-class VMInterfaceCSVForm(CSVModelForm):
+class VMInterfaceCSVForm(CustomFieldModelCSVForm):
virtual_machine = CSVModelChoiceField(
queryset=VirtualMachine.objects.all(),
to_field_name='name'
@@ -746,7 +748,7 @@ class VMInterfaceCSVForm(CSVModelForm):
return self.cleaned_data['enabled']
-class VMInterfaceBulkEditForm(BootstrapMixin, AddRemoveTagsForm, BulkEditForm):
+class VMInterfaceBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldBulkEditForm):
pk = forms.ModelMultipleChoiceField(
queryset=VMInterface.objects.all(),
widget=forms.MultipleHiddenInput()
diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py
index fe0d5322f..4fdca3078 100644
--- a/netbox/virtualization/views.py
+++ b/netbox/virtualization/views.py
@@ -461,7 +461,7 @@ class VMInterfaceCreateView(generic.ComponentCreateView):
queryset = VMInterface.objects.all()
form = forms.VMInterfaceCreateForm
model_form = forms.VMInterfaceForm
- template_name = 'virtualization/virtualmachine_component_add.html'
+ template_name = 'dcim/device_component_add.html'
class VMInterfaceEditView(generic.ObjectEditView):