Opened 18 years ago

Closed 18 years ago

Last modified 10 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

Description

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 __init__.py 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@… 18 years ago.
Fix for template loader

Download all attachments as: .zip

Change History (4)

by django@…, 18 years ago

Fix for template loader

comment:1 by Adrian Holovaty, 18 years ago

Resolution: fixed
Status: newclosed

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

comment:2 by anonymous, 10 years ago

Easy pickings: unset
UI/UX: unset

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

comment:3 by anonymous, 10 years ago

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