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