Commit 6ea90256 authored by Luke Plant's avatar Luke Plant
Browse files

[1.2.X] Fixed #14242 - UserChangeForm subclasses without 'user_permissions' field causes KeyError

  
This was a regression introduced by [13684]
  
Thanks to adammckerlie@gmail.com for report.

Backport of [13702] from trunk.


git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@13704 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 5357000b
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -54,7 +54,9 @@ class UserChangeForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        super(UserChangeForm, self).__init__(*args, **kwargs)
        self.fields['user_permissions'].queryset = self.fields['user_permissions'].queryset.select_related('content_type')
        f = self.fields.get('user_permissions', None)
        if f is not None:
            f.queryset = f.queryset.select_related('content_type')

class AuthenticationForm(forms.Form):
    """
+16 −0
Original line number Diff line number Diff line
@@ -199,6 +199,22 @@ class UserChangeFormTest(TestCase):
        self.assertEqual(form['username'].errors,
                         [u'This value may contain only letters, numbers and @/./+/-/_ characters.'])

    def test_bug_14242(self):
        # A regression test, introduce by adding an optimization for the
        # UserChangeForm.

        class MyUserForm(UserChangeForm):
            def __init__(self, *args, **kwargs):
                super(MyUserForm, self).__init__(*args, **kwargs)
                self.fields['groups'].help_text = 'These groups give users different permissions'

            class Meta(UserChangeForm.Meta):
                fields = ('groups',)

        # Just check we can create it
        form = MyUserForm({})


class PasswordResetFormTest(TestCase):

    fixtures = ['authtestdata.json']