mirror of
https://github.com/netbox-community/netbox.git
synced 2025-09-06 14:23:36 -06:00
Fixes: #19996 - Correct dynamic query parameters for IP Address field in Add/Edit Service form
This commit is contained in:
parent
6ce3012f93
commit
a3322d9cc2
@ -21,7 +21,7 @@ from utilities.forms.rendering import FieldSet, InlineFields, ObjectAttribute, T
|
|||||||
from utilities.forms.utils import get_field_value
|
from utilities.forms.utils import get_field_value
|
||||||
from utilities.forms.widgets import DatePicker, HTMXSelect
|
from utilities.forms.widgets import DatePicker, HTMXSelect
|
||||||
from utilities.templatetags.builtins.filters import bettertitle
|
from utilities.templatetags.builtins.filters import bettertitle
|
||||||
from virtualization.models import VMInterface
|
from virtualization.models import VMInterface, VirtualMachine
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
'AggregateForm',
|
'AggregateForm',
|
||||||
@ -783,10 +783,6 @@ class ServiceForm(NetBoxModelForm):
|
|||||||
queryset=IPAddress.objects.all(),
|
queryset=IPAddress.objects.all(),
|
||||||
required=False,
|
required=False,
|
||||||
label=_('IP Addresses'),
|
label=_('IP Addresses'),
|
||||||
query_params={
|
|
||||||
'device_id': '$device',
|
|
||||||
'virtual_machine_id': '$virtual_machine',
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
comments = CommentField()
|
comments = CommentField()
|
||||||
|
|
||||||
@ -818,13 +814,28 @@ class ServiceForm(NetBoxModelForm):
|
|||||||
if (parent_object_type_id := get_field_value(self, 'parent_object_type')):
|
if (parent_object_type_id := get_field_value(self, 'parent_object_type')):
|
||||||
try:
|
try:
|
||||||
parent_type = ContentType.objects.get(pk=parent_object_type_id)
|
parent_type = ContentType.objects.get(pk=parent_object_type_id)
|
||||||
|
if parent_type.model_class() == Device:
|
||||||
|
self.fields['ipaddresses'].widget.add_query_params({
|
||||||
|
'device_id': '$parent',
|
||||||
|
})
|
||||||
|
elif parent_type.model_class() == VirtualMachine:
|
||||||
|
self.fields['ipaddresses'].widget.add_query_params({
|
||||||
|
'virtual_machine_id': '$parent',
|
||||||
|
})
|
||||||
|
elif parent_type.model_class() == FHRPGroup:
|
||||||
|
self.fields['ipaddresses'].widget.add_query_params({
|
||||||
|
'fhrpgroup_id': '$parent',
|
||||||
|
})
|
||||||
model = parent_type.model_class()
|
model = parent_type.model_class()
|
||||||
self.fields['parent'].queryset = model.objects.all()
|
self.fields['parent'].queryset = model.objects.all()
|
||||||
self.fields['parent'].widget.attrs['selector'] = model._meta.label_lower
|
self.fields['parent'].widget.attrs['selector'] = model._meta.label_lower
|
||||||
self.fields['parent'].disabled = False
|
self.fields['parent'].disabled = False
|
||||||
self.fields['parent'].label = _(bettertitle(model._meta.verbose_name))
|
self.fields['parent'].label = _(bettertitle(model._meta.verbose_name))
|
||||||
except ObjectDoesNotExist:
|
except ObjectDoesNotExist:
|
||||||
|
print('Except')
|
||||||
pass
|
pass
|
||||||
|
else:
|
||||||
|
print('No obj_type')
|
||||||
|
|
||||||
if self.instance and self.instance.pk and parent_object_type_id != self.instance.parent_object_type_id:
|
if self.instance and self.instance.pk and parent_object_type_id != self.instance.parent_object_type_id:
|
||||||
self.initial['parent'] = None
|
self.initial['parent'] = None
|
||||||
|
Loading…
Reference in New Issue
Block a user