From 5acf203db2e9562dbe4073bf85d5043ef3121ea9 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Mon, 26 Oct 2015 18:38:30 -0400 Subject: [PATCH] Fixed #25596 -- Fixed regression in password change view with custom user model. The reverse() added in 50aa1a790ca66c2a93e0a52e00c53375b269ff49 crashed on a custom user model. --- django/contrib/auth/admin.py | 5 +++-- tests/auth_tests/models/uuid_pk.py | 3 --- tests/auth_tests/test_auth_backends.py | 2 +- tests/auth_tests/test_views.py | 6 +++--- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/django/contrib/auth/admin.py b/django/contrib/auth/admin.py index 76345e92f5..37b68f222f 100644 --- a/django/contrib/auth/admin.py +++ b/django/contrib/auth/admin.py @@ -148,8 +148,9 @@ class UserAdmin(admin.ModelAdmin): update_session_auth_hash(request, form.user) return HttpResponseRedirect( reverse( - '%s:auth_%s_change' % ( + '%s:%s_%s_change' % ( self.admin_site.name, + user._meta.app_label, user._meta.model_name, ), args=(user.pk,), @@ -178,7 +179,7 @@ class UserAdmin(admin.ModelAdmin): 'save_as': False, 'show_save': True, } - context.update(admin.site.each_context(request)) + context.update(self.admin_site.each_context(request)) request.current_app = self.admin_site.name diff --git a/tests/auth_tests/models/uuid_pk.py b/tests/auth_tests/models/uuid_pk.py index 44ec4410aa..7c65226493 100644 --- a/tests/auth_tests/models/uuid_pk.py +++ b/tests/auth_tests/models/uuid_pk.py @@ -8,6 +8,3 @@ with RemoveGroupsAndPermissions(): class UUIDUser(AbstractUser): """A user with a UUID as primary key""" id = models.UUIDField(default=uuid.uuid4, primary_key=True) - - class Meta: - app_label = 'auth' diff --git a/tests/auth_tests/test_auth_backends.py b/tests/auth_tests/test_auth_backends.py index 35b3cf893c..d8b2f43153 100644 --- a/tests/auth_tests/test_auth_backends.py +++ b/tests/auth_tests/test_auth_backends.py @@ -292,7 +292,7 @@ class CustomUserModelBackendAuthenticateTest(TestCase): self.assertEqual(test_user, authenticated_user) -@override_settings(AUTH_USER_MODEL='auth.UUIDUser') +@override_settings(AUTH_USER_MODEL='auth_tests.UUIDUser') class UUIDUserTests(TestCase): def test_login(self): diff --git a/tests/auth_tests/test_views.py b/tests/auth_tests/test_views.py index d7a64608b8..7450bca7bf 100644 --- a/tests/auth_tests/test_views.py +++ b/tests/auth_tests/test_views.py @@ -404,7 +404,7 @@ class CustomUserPasswordResetTest(AuthViewsTestCase): self.assertRedirects(response, '/reset/done/') -@override_settings(AUTH_USER_MODEL='auth.UUIDUser') +@override_settings(AUTH_USER_MODEL='auth_tests.UUIDUser') class UUIDUserPasswordResetTest(CustomUserPasswordResetTest): def _test_confirm_start(self): @@ -991,7 +991,7 @@ class ChangelistTests(AuthViewsTestCase): @override_settings( - AUTH_USER_MODEL='auth.UUIDUser', + AUTH_USER_MODEL='auth_tests.UUIDUser', ROOT_URLCONF='auth_tests.urls_custom_user_admin', ) class UUIDUserTests(TestCase): @@ -1000,7 +1000,7 @@ class UUIDUserTests(TestCase): u = UUIDUser.objects.create_superuser(username='uuid', email='foo@bar.com', password='test') self.assertTrue(self.client.login(username='uuid', password='test')) - user_change_url = reverse('custom_user_admin:auth_uuiduser_change', args=(u.pk,)) + user_change_url = reverse('custom_user_admin:auth_tests_uuiduser_change', args=(u.pk,)) response = self.client.get(user_change_url) self.assertEqual(response.status_code, 200)