Skip to content

Commit 893adef

Browse files
DanShepsjeremystretch
authored andcommitted
Fixes: #17492 - Change methods on NetBox*HyperlinkedIdentityField to use get_viewname
1 parent bdf182f commit 893adef

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

netbox/netbox/api/serializers/fields.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
from django.utils.translation import gettext_lazy as _
12
from rest_framework import serializers
23

4+
from utilities.views import get_viewname
5+
36
__all__ = (
47
'NetBoxAPIHyperlinkedIdentityField',
58
'NetBoxURLHyperlinkedIdentityField',
@@ -30,24 +33,22 @@ def get_url(self, obj, view_name, request, format):
3033
lookup_value = getattr(obj, self.lookup_field)
3134
kwargs = {self.lookup_url_kwarg: lookup_value}
3235

33-
model_name = self.parent.Meta.model._meta.model_name
34-
app_name = self.parent.Meta.model._meta.app_label
35-
view_name = self.get_view_name(app_name, model_name)
36+
view_name = self.get_view_name(obj)
3637
return self.reverse(view_name, kwargs=kwargs, request=request, format=format)
3738

38-
def get_view_name(self, app_name, model_name):
39+
def get_view_name(self, model):
3940
raise NotImplementedError(_('{class_name} must implement get_view_name()').format(
4041
class_name=self.__class__.__name__
4142
))
4243

4344

4445
class NetBoxAPIHyperlinkedIdentityField(BaseNetBoxHyperlinkedIdentityField):
4546

46-
def get_view_name(self, app_name, model_name):
47-
return f'{app_name}-api:{model_name}-detail'
47+
def get_view_name(self, model):
48+
return get_viewname(model=model, action='detail', rest_api=True)
4849

4950

5051
class NetBoxURLHyperlinkedIdentityField(BaseNetBoxHyperlinkedIdentityField):
5152

52-
def get_view_name(self, app_name, model_name):
53-
return f'{app_name}:{model_name}'
53+
def get_view_name(self, model):
54+
return get_viewname(model=model)

0 commit comments

Comments
 (0)