[1.10.x] Fixed #26729 -- Allowed overriding a form field's label/help_text in Form.__init__() for TabularInline.
Backport of 9c2d5a8d33
from master
This commit is contained in:
parent
e725a68bcc
commit
c464cf88ff
|
@ -279,7 +279,7 @@ class InlineAdminFormSet(object):
|
|||
'help_text': help_text_for_field(field_name, self.opts.model),
|
||||
}
|
||||
else:
|
||||
form_field = self.formset.form.base_fields[field_name]
|
||||
form_field = self.formset.empty_form.fields[field_name]
|
||||
label = form_field.label
|
||||
if label is None:
|
||||
label = label_for_field(field_name, self.opts.model, self.opts)
|
||||
|
|
|
@ -192,6 +192,10 @@ class SomeChildModelForm(forms.ModelForm):
|
|||
'position': forms.HiddenInput,
|
||||
}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(SomeChildModelForm, self).__init__(*args, **kwargs)
|
||||
self.fields['name'].label = 'new label'
|
||||
|
||||
|
||||
class SomeChildModelInline(admin.TabularInline):
|
||||
model = SomeChildModel
|
||||
|
|
|
@ -95,6 +95,16 @@ class TestInline(TestDataMixin, TestCase):
|
|||
response = self.client.get(reverse('admin:admin_inlines_titlecollection_add'))
|
||||
self.assertContains(response, '<th class="required">Title1</th>', html=True)
|
||||
|
||||
def test_custom_form_tabular_inline_overridden_label(self):
|
||||
"""
|
||||
SomeChildModelForm.__init__() overrides the label of a form field.
|
||||
That label is displayed in the TabularInline.
|
||||
"""
|
||||
response = self.client.get(reverse('admin:admin_inlines_someparentmodel_add'))
|
||||
field = list(response.context['inline_admin_formset'].fields())[0]
|
||||
self.assertEqual(field['label'], 'new label')
|
||||
self.assertContains(response, '<th class="required">New label</th>', html=True)
|
||||
|
||||
def test_tabular_non_field_errors(self):
|
||||
"""
|
||||
Ensure that non_field_errors are displayed correctly, including the
|
||||
|
|
Loading…
Reference in New Issue