From 047a248ba31e851463d449d15c1957ae0f6f5604 Mon Sep 17 00:00:00 2001 From: Peter Eckel Date: Tue, 15 Sep 2026 13:52:28 +0200 Subject: [PATCH] Fixed error 500 when deleting servers with interfaces in the GUI --- netbox_dhcp/models/dhcp_server.py | 6 ++++-- netbox_dhcp/urls.py | 8 ++++++++ netbox_dhcp/views/dhcp_server.py | 6 ++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/netbox_dhcp/models/dhcp_server.py b/netbox_dhcp/models/dhcp_server.py index 800709d..25b6ad7 100644 --- a/netbox_dhcp/models/dhcp_server.py +++ b/netbox_dhcp/models/dhcp_server.py @@ -120,8 +120,10 @@ class Meta: ) def __str__(self): - if hasattr(self, "name"): - return self.name + if self.device_interface is not None: + return self.device_interface.name + if self.virtual_machine_interface is not None: + return self.virtual_machine_interface.name return super().__str__() diff --git a/netbox_dhcp/urls.py b/netbox_dhcp/urls.py index 7ccf292..cee72f2 100644 --- a/netbox_dhcp/urls.py +++ b/netbox_dhcp/urls.py @@ -67,6 +67,14 @@ "dhcpservers//", include(get_model_urls("netbox_dhcp", "dhcpserver")), ), + path( + "dhcpserverinterfaces/", + include(get_model_urls("netbox_dhcp", "dhcpserverinterface", detail=False)), + ), + path( + "dhcpserverinterfaces//", + include(get_model_urls("netbox_dhcp", "dhcpserverinterface")), + ), path( "pdpools/", include(get_model_urls("netbox_dhcp", "pdpool", detail=False)), diff --git a/netbox_dhcp/views/dhcp_server.py b/netbox_dhcp/views/dhcp_server.py index 7b29702..1537030 100644 --- a/netbox_dhcp/views/dhcp_server.py +++ b/netbox_dhcp/views/dhcp_server.py @@ -19,6 +19,7 @@ from netbox_dhcp.models import ( ClientClass, DHCPServer, + DHCPServerInterface, HostReservation, Option, OptionDefinition, @@ -52,6 +53,11 @@ ) +@register_model_view(DHCPServerInterface) +class DHCPServerInterfaceView(generic.ObjectView): + queryset = DHCPServerInterface.objects.all() + + @register_model_view(DHCPServer, "list", path="", detail=False) class DHCPServerListView(generic.ObjectListView): queryset = DHCPServer.objects.all()