Opened 7 years ago

Closed 4 years ago

#16883 closed Bug (fixed)

Importing from not-installed app prevents any other app with that label from loading

Reported by: Carl Meyer Owned by: nott
Component: Database layer (models, ORM) Version: master
Severity: Normal Keywords: app-loading
Cc: Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no


If a from an app that is not listed in INSTALLED_APPS happens to be imported for whatever reason, that (not-installed) app takes over the app-label in the app cache, making it impossible for any app actually in INSTALLED_APPS to use that app-label. This is wrong - an import should not have such a side effect. INSTALLED_APPS should be the arbiter of what apps are actually found in the app cache.

The fix for #16283 worked around this problem and removed the immediate symptom, but didn't address the underlying issue.

The fix for #15866 addressed a similar issue, but didn't fix this.

This may be fixed in the app-loading branch, and in any case is closely-related to the changes there.

Attached tarball is a simplest-case and app demonstrating the issue; run " validate" to see the problem. The models from contrib.auth are being validated even though that app is not installed, simply because its has been imported. The presence of another INSTALLED_APP with the "auth" app-label causes the app cache to be confused into thinking that contrib.auth is actually installed, when it is not.

Attachments (1)

uninstalled-models.tgz (3.0 KB) - added by Carl Meyer 7 years ago.
project demonstrating the problem

Download all attachments as: .zip

Change History (4)

Changed 7 years ago by Carl Meyer

Attachment: uninstalled-models.tgz added

project demonstrating the problem

comment:1 Changed 7 years ago by Preston Holmes

Triage Stage: UnreviewedAccepted

Downloaded the demo and validated the problem

comment:2 Changed 4 years ago by nott

Owner: changed from nobody to nott
Status: newassigned

comment:3 Changed 4 years ago by Aymeric Augustin

Keywords: app-loading added
Resolution: fixed
Status: assignedclosed

I believe this is solved by the app loading refactor in 1.7, or will be in 1.9. Such invalid combinations will raise an exception, possibly after a deprecation path.

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