Commit c464cf88 authored by Paulo's avatar Paulo Committed by Tim Graham
Browse files

[1.10.x] Fixed #26729 -- Allowed overriding a form field's label/help_text in...

[1.10.x] Fixed #26729 -- Allowed overriding a form field's label/help_text in Form.__init__() for TabularInline.

Backport of 9c2d5a8d from master
parent e725a68b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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)
+4 −0
Original line number Diff line number Diff line
@@ -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
+10 −0
Original line number Diff line number Diff line
@@ -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