|
| 1 | +from django.utils.translation import gettext_lazy as _ |
1 | 2 | from rest_framework import serializers |
2 | 3 |
|
| 4 | +from utilities.views import get_viewname |
| 5 | + |
3 | 6 | __all__ = ( |
4 | 7 | 'NetBoxAPIHyperlinkedIdentityField', |
5 | 8 | 'NetBoxURLHyperlinkedIdentityField', |
@@ -30,24 +33,22 @@ def get_url(self, obj, view_name, request, format): |
30 | 33 | lookup_value = getattr(obj, self.lookup_field) |
31 | 34 | kwargs = {self.lookup_url_kwarg: lookup_value} |
32 | 35 |
|
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) |
36 | 37 | return self.reverse(view_name, kwargs=kwargs, request=request, format=format) |
37 | 38 |
|
38 | | - def get_view_name(self, app_name, model_name): |
| 39 | + def get_view_name(self, model): |
39 | 40 | raise NotImplementedError(_('{class_name} must implement get_view_name()').format( |
40 | 41 | class_name=self.__class__.__name__ |
41 | 42 | )) |
42 | 43 |
|
43 | 44 |
|
44 | 45 | class NetBoxAPIHyperlinkedIdentityField(BaseNetBoxHyperlinkedIdentityField): |
45 | 46 |
|
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) |
48 | 49 |
|
49 | 50 |
|
50 | 51 | class NetBoxURLHyperlinkedIdentityField(BaseNetBoxHyperlinkedIdentityField): |
51 | 52 |
|
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