diff --git a/django/contrib/auth/management/__init__.py b/django/contrib/auth/management/__init__.py index e792597778..b516507277 100644 --- a/django/contrib/auth/management/__init__.py +++ b/django/contrib/auth/management/__init__.py @@ -31,8 +31,8 @@ def create_permissions(app, created_models, verbosity, **kwargs): searched_perms = list() # The codenames and ctypes that should exist. ctypes = set() - ctypes_for_models = ContentType.objects.get_for_models(*app_models) - for klass, ctype in ctypes_for_models.iteritems(): + for klass in app_models: + ctype = ContentType.objects.get_for_model(klass) ctypes.add(ctype) for perm in _get_all_permissions(klass._meta): searched_perms.append((ctype, perm)) diff --git a/tests/modeltests/proxy_models/models.py b/tests/modeltests/proxy_models/models.py index c033117bf8..49fd87deff 100644 --- a/tests/modeltests/proxy_models/models.py +++ b/tests/modeltests/proxy_models/models.py @@ -44,6 +44,9 @@ class MyPerson(Person): class Meta: proxy = True ordering = ["name"] + permissions = ( + ("display_users", "May display users information"), + ) objects = SubManager() other = PersonManager() @@ -158,4 +161,4 @@ class Improvement(Issue): class ProxyImprovement(Improvement): class Meta: - proxy = True \ No newline at end of file + proxy = True diff --git a/tests/modeltests/proxy_models/tests.py b/tests/modeltests/proxy_models/tests.py index b3321038db..738e0dbce2 100644 --- a/tests/modeltests/proxy_models/tests.py +++ b/tests/modeltests/proxy_models/tests.py @@ -167,6 +167,13 @@ class ProxyModelTests(TestCase): resp = [p.name for p in OtherPerson._default_manager.all()] self.assertEqual(resp, ['barney', 'wilma']) + def test_permissions_created(self): + from django.contrib.auth.models import Permission + try: + Permission.objects.get(name="May display users information") + except Permission.DoesNotExist: + self.fail("The permission 'May display users information' has not been created") + def test_proxy_model_signals(self): """ Test save signals for proxy models