From 5173a490b827ccf12b117acbf44f9cd7beda2c63 Mon Sep 17 00:00:00 2001 From: Rob Duffy Date: Mon, 2 Dec 2024 20:26:19 +0100 Subject: [PATCH] Apply the path__in filter to avoid duplicating code Co-authored-by: Jeremy Stretch --- netbox/utilities/jinja2.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/netbox/utilities/jinja2.py b/netbox/utilities/jinja2.py index dd2f083ad..9f87d3f28 100644 --- a/netbox/utilities/jinja2.py +++ b/netbox/utilities/jinja2.py @@ -30,15 +30,14 @@ class DataFileLoader(BaseLoader): # Find and pre-fetch referenced templates if referenced_templates := tuple(find_referenced_templates(environment.parse(template_source))): if None in referenced_templates: - self.cache_templates({ - df.path: df.data_as_string for df in - DataFile.objects.filter(source=self.data_source) - }) - else: - self.cache_templates({ - df.path: df.data_as_string for df in - DataFile.objects.filter(source=self.data_source, path__in=referenced_templates) - }) + related_files = DataFile.objects.filter(source=self.data_source) + # None indicates the use of dynamic resolution. If dependent files are statically + # defined, we can filter by path for optimization. + if None not in referenced_templates: + related_files = related_files.filter(path__in=referenced_templates) + self.cache_templates({ + df.path: df.data_as_string for df in related_files + }) return template_source, template, lambda: True