Fixed #21871 -- Fixed Apps.is_installed() for apps with custom label.

Thanks Aymeric for design discussion.
This commit is contained in:
Carl Meyer 2014-01-24 20:07:14 -07:00
parent f5f556dba3
commit 29ddae7436
3 changed files with 3 additions and 2 deletions

View File

@ -204,8 +204,7 @@ class Apps(object):
It's safe to call this method at import time, even while the registry
is being populated. It returns False for apps that aren't loaded yet.
"""
app_config = self.app_configs.get(app_name.rpartition(".")[2])
return app_config is not None and app_config.name == app_name
return any(ac.name == app_name for ac in self.app_configs.values())
def get_containing_app_config(self, object_name):
"""

View File

@ -10,6 +10,7 @@ class MyAdmin(AppConfig):
class MyAuth(AppConfig):
name = 'django.contrib.auth'
label = 'myauth'
verbose_name = "All your password are belong to us."

View File

@ -109,6 +109,7 @@ class AppsTests(TestCase):
@override_settings(INSTALLED_APPS=SOME_INSTALLED_APPS)
def test_is_installed(self):
self.assertTrue(apps.is_installed('django.contrib.admin'))
self.assertTrue(apps.is_installed('django.contrib.auth'))
self.assertTrue(apps.is_installed('django.contrib.staticfiles'))
self.assertFalse(apps.is_installed('django.contrib.webdesign'))