mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-21 03:27:21 -06:00
* Fixes #17490: Config Template unable to dynamically include templates * Cast the generator returned by find_referenced_templates() to an iterable to avoid exhausting it on the check for None Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com> * Apply the path__in filter to avoid duplicating code Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com> * Remove extra if None not in referenced_templates --------- Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
This commit is contained in:
parent
1e845e6b46
commit
327ad8cfc9
@ -28,10 +28,14 @@ class DataFileLoader(BaseLoader):
|
||||
raise TemplateNotFound(template)
|
||||
|
||||
# Find and pre-fetch referenced templates
|
||||
if referenced_templates := find_referenced_templates(environment.parse(template_source)):
|
||||
if referenced_templates := tuple(find_referenced_templates(environment.parse(template_source))):
|
||||
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
|
||||
DataFile.objects.filter(source=self.data_source, path__in=referenced_templates)
|
||||
df.path: df.data_as_string for df in related_files
|
||||
})
|
||||
|
||||
return template_source, template, lambda: True
|
||||
|
Loading…
Reference in New Issue
Block a user