diff --git a/docs/plugins/development.md b/docs/plugins/development.md index 84d04bc8e..b96fbec49 100644 --- a/docs/plugins/development.md +++ b/docs/plugins/development.md @@ -329,7 +329,7 @@ Additionally, a `render()` method is available for convenience. This method acce When a PluginTemplateExtension is instantiated, context data is assigned to `self.context`. Available data include: -* `obj` - The object being viewed +* `object` - The object being viewed * `request` - The current request * `settings` - Global NetBox settings * `config` - Plugin-specific configuration parameters diff --git a/netbox/extras/plugins/__init__.py b/netbox/extras/plugins/__init__.py index 30a4e0acd..93aceab3d 100644 --- a/netbox/extras/plugins/__init__.py +++ b/netbox/extras/plugins/__init__.py @@ -75,29 +75,33 @@ class PluginConfig(AppConfig): class PluginTemplateExtension: """ - This class is used to register plugin content to be injected into core NetBox templates. - It contains methods that are overridden by plugin authors to return template content. + This class is used to register plugin content to be injected into core NetBox templates. It contains methods + that are overridden by plugin authors to return template content. - The `model` attribute on the class defines the which model detail page this class renders - content for. It should be set as a string in the form '.'. + The `model` attribute on the class defines the which model detail page this class renders content for. It + should be set as a string in the form '.'. render() provides the following context data: + + * object - The object being viewed + * request - The current request + * settings - Global NetBox settings + * config - Plugin-specific configuration parameters """ model = None def __init__(self, context): self.context = context - def render(self, template, extra_context=None): + def render(self, template_name, extra_context=None): """ - Convenience method for rendering the provided template name. The detail page object is automatically - passed into the template context as `obj` and the original detail page's context is available as - `obj_context`. An additional context dictionary may be passed as `extra_context`. + Convenience method for rendering the specified Django template using the default context data. An additional + context dictionary may be passed as `extra_context`. """ if extra_context is None: extra_context = {} elif not isinstance(extra_context, dict): raise TypeError("extra_context must be a dictionary") - return get_template(template).render({**self.context, **extra_context}) + return get_template(template_name).render({**self.context, **extra_context}) def left_page(self): """ diff --git a/netbox/extras/templatetags/plugins.py b/netbox/extras/templatetags/plugins.py index e3d1d0e46..b66cce0a6 100644 --- a/netbox/extras/templatetags/plugins.py +++ b/netbox/extras/templatetags/plugins.py @@ -15,7 +15,7 @@ def _get_registered_content(obj, method, template_context): """ html = '' context = { - 'obj': obj, + 'object': obj, 'request': template_context['request'], 'settings': template_context['settings'], }