Fixed #14242 - UserChangeForm subclasses without 'user_permissions' field causes KeyError
This was a regression introduced by [13683] Thanks to adammckerlie@gmail.com for report. git-svn-id: http://code.djangoproject.com/svn/django/trunk@13702 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
801bb146e8
commit
303bdc85a7
|
@ -54,7 +54,9 @@ class UserChangeForm(forms.ModelForm):
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(UserChangeForm, self).__init__(*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):
|
class AuthenticationForm(forms.Form):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -199,6 +199,22 @@ class UserChangeFormTest(TestCase):
|
||||||
self.assertEqual(form['username'].errors,
|
self.assertEqual(form['username'].errors,
|
||||||
[u'This value may contain only letters, numbers and @/./+/-/_ characters.'])
|
[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):
|
class PasswordResetFormTest(TestCase):
|
||||||
|
|
||||||
fixtures = ['authtestdata.json']
|
fixtures = ['authtestdata.json']
|
||||||
|
|
Loading…
Reference in New Issue