diff options
author | Jones Ambrosi <jones.ambrosi@softdesign.com.br> | 2019-05-28 14:57:31 -0300 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-06-04 10:27:12 +0200 |
commit | f9561144d79bad88ee5781e3b2c09fb7c8f7fd7d (patch) | |
tree | 80ad2e0deed24019a6181b2b590d8cd465f4b3fd /tests/admin_inlines | |
parent | aa94f7c899b98f547fc1d26797ba892c38eaf415 (diff) | |
download | django-f9561144d79bad88ee5781e3b2c09fb7c8f7fd7d.tar.gz |
Fixed #30520 -- Fixed crash of admin model inlines on custom fields without labels.
Diffstat (limited to 'tests/admin_inlines')
-rw-r--r-- | tests/admin_inlines/admin.py | 37 | ||||
-rw-r--r-- | tests/admin_inlines/tests.py | 10 |
2 files changed, 44 insertions, 3 deletions
diff --git a/tests/admin_inlines/admin.py b/tests/admin_inlines/admin.py index dd2624943e..f4071efa4e 100644 --- a/tests/admin_inlines/admin.py +++ b/tests/admin_inlines/admin.py @@ -4,10 +4,10 @@ from django.db import models from .models import ( Author, BinaryTree, CapoFamiglia, Chapter, Child, ChildModel1, ChildModel2, - Consigliere, EditablePKBook, ExtraTerrestrial, Fashionista, Holder, - Holder2, Holder3, Holder4, Inner, Inner2, Inner3, Inner4Stacked, + Consigliere, EditablePKBook, ExtraTerrestrial, Fashionista, FootNote, + Holder, Holder2, Holder3, Holder4, Inner, Inner2, Inner3, Inner4Stacked, Inner4Tabular, NonAutoPKBook, NonAutoPKBookChild, Novel, - NovelReadonlyChapter, ParentModelWithCustomPk, Poll, Profile, + NovelReadonlyChapter, OutfitItem, ParentModelWithCustomPk, Poll, Profile, ProfileCollection, Question, ReadOnlyInline, ShoppingWeakness, Sighting, SomeChildModel, SomeParentModel, SottoCapo, Teacher, Title, TitleCollection, @@ -131,6 +131,35 @@ class InlineWeakness(admin.TabularInline): extra = 1 +class WeaknessForm(forms.ModelForm): + extra_field = forms.CharField() + + class Meta: + model = ShoppingWeakness + fields = '__all__' + + +class WeaknessInlineCustomForm(admin.TabularInline): + model = ShoppingWeakness + form = WeaknessForm + + +class FootNoteForm(forms.ModelForm): + extra_field = forms.CharField() + + class Meta: + model = FootNote + fields = '__all__' + + +class FootNoteNonEditableInlineCustomForm(admin.TabularInline): + model = FootNote + form = FootNoteForm + + def has_change_permission(self, request, obj=None): + return False + + class QuestionInline(admin.TabularInline): model = Question readonly_fields = ['call_me'] @@ -271,3 +300,5 @@ site.register(ExtraTerrestrial, inlines=[SightingInline]) site.register(SomeParentModel, inlines=[SomeChildModelInline]) site.register([Question, Inner4Stacked, Inner4Tabular]) site.register(Teacher, TeacherAdmin) +site.register(Chapter, inlines=[FootNoteNonEditableInlineCustomForm]) +site.register(OutfitItem, inlines=[WeaknessInlineCustomForm]) diff --git a/tests/admin_inlines/tests.py b/tests/admin_inlines/tests.py index 09fcd0f300..fe0d913b0d 100644 --- a/tests/admin_inlines/tests.py +++ b/tests/admin_inlines/tests.py @@ -108,6 +108,16 @@ class TestInline(TestDataMixin, TestCase): response = self.client.get(reverse('admin:admin_inlines_titlecollection_add')) self.assertContains(response, '<th class="column-title1 required">Title1</th>', html=True) + def test_custom_form_tabular_inline_extra_field_label(self): + response = self.client.get(reverse('admin:admin_inlines_outfititem_add')) + _, extra_field = list(response.context['inline_admin_formset'].fields()) + self.assertEqual(extra_field['label'], 'Extra field') + + def test_non_editable_custom_form_tabular_inline_extra_field_label(self): + response = self.client.get(reverse('admin:admin_inlines_chapter_add')) + _, extra_field = list(response.context['inline_admin_formset'].fields()) + self.assertEqual(extra_field['label'], 'Extra field') + def test_custom_form_tabular_inline_overridden_label(self): """ SomeChildModelForm.__init__() overrides the label of a form field. |