From 1e089d8e83ef2d9d8f75cb5b59417df0ec363d69 Mon Sep 17 00:00:00 2001 From: Daniel Sheppard Date: Wed, 11 Sep 2024 12:07:03 -0500 Subject: [PATCH] Fixes: #17452 - Return None is NoReverseMatch found from self.reverse with BaseNetBoxHyperlinkedIdentityField.get_url --- netbox/netbox/api/serializers/fields.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/netbox/netbox/api/serializers/fields.py b/netbox/netbox/api/serializers/fields.py index 4fee36043..0eda44263 100644 --- a/netbox/netbox/api/serializers/fields.py +++ b/netbox/netbox/api/serializers/fields.py @@ -1,3 +1,4 @@ +from django.urls import NoReverseMatch from rest_framework import serializers __all__ = ( @@ -33,7 +34,11 @@ class BaseNetBoxHyperlinkedIdentityField(serializers.HyperlinkedIdentityField): model_name = self.parent.Meta.model._meta.model_name app_name = self.parent.Meta.model._meta.app_label view_name = self.get_view_name(app_name, model_name) - return self.reverse(view_name, kwargs=kwargs, request=request, format=format) + + try: + return self.reverse(view_name, kwargs=kwargs, request=request, format=format) + except NoReverseMatch: + return None def get_view_name(self, app_name, model_name): raise NotImplementedError(_('{class_name} must implement get_view_name()').format(