Opened 9 years ago

Closed 9 years ago

Last modified 12 months ago

#1292 closed defect (fixed)

[patch] Template loader caching can cause circular imports

Reported by: django@… Owned by: adrian
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@… 9 years ago.
Fix for template loader

Download all attachments as: .zip

Change History (4)

Changed 9 years ago by django@…

Fix for template loader

comment:1 Changed 9 years ago by adrian

  • Resolution set to fixed
  • Status changed from new to closed

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

comment:2 Changed 12 months 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 12 months 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