Opened 13 years ago

Closed 13 years ago

Last modified 5 years ago

#1292 closed defect (fixed)

[patch] Template loader caching can cause circular imports

Reported by: django@… Owned by: Adrian Holovaty
Component: Template system Version:
Severity: normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no


The template.loader module caches the enabled template loaders in a module global at the time of import. The resulting dynamic imports can lead to problems with circular imports. For example, a circular import will occur if the app_directories template loader is used together with an application that tries to do anything in its that triggers another import of template.loader.

The attached patch resolves this problem by caching only on the first call to find_template_source.

Attachments (1)

loader_caching_fix_r2158.diff (2.6 KB) - added by django@… 13 years ago.
Fix for template loader

Download all attachments as: .zip

Change History (4)

Changed 13 years ago by django@…

Fix for template loader

comment:1 Changed 13 years ago by Adrian Holovaty

Resolution: fixed
Status: newclosed

(In [2226]) Fixed #1292 -- Fixed potential circular-import problem in template loader. Thanks, Kieran Holland

comment:2 Changed 5 years ago by anonymous

Easy pickings: unset
UI/UX: unset

I am using Django release 1.5 and I have this error... Why?

comment:3 Changed 5 years ago by anonymous

I looked in the .py file and the for loop is still global. Honestly this is annoying.

Note: See TracTickets for help on using tickets.
Back to Top