From 547317ea7b560f911d0a68b5a26da2b44cbd8c1c Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 25 Jun 2020 10:53:00 -0400 Subject: [PATCH] Extend ObjectView to provide a default get() method --- netbox/utilities/views.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/netbox/utilities/views.py b/netbox/utilities/views.py index cf282a8c0..0fdb2f89e 100644 --- a/netbox/utilities/views.py +++ b/netbox/utilities/views.py @@ -127,6 +127,25 @@ class ObjectView(ObjectPermissionRequiredMixin, View): def get_required_permission(self): return get_permission_for_model(self.queryset.model, 'view') + def get_template_name(self): + """ + Return self.template_name if set. Otherwise, resolve the template path by model app_label and name. + """ + if hasattr(self, 'template_name'): + return self.template_name + model_opts = self.queryset.model._meta + return f'{model_opts.app_label}/{model_opts.model_name}.html' + + def get(self, request, pk): + """ + Generic GET handler for accessing an object by PK + """ + instance = get_object_or_404(self.queryset, pk=pk) + + return render(request, self.get_template_name(), { + 'instance': instance, + }) + class ObjectListView(ObjectPermissionRequiredMixin, View): """