summaryrefslogtreecommitdiff
path: root/tests/admin_inlines
diff options
context:
space:
mode:
authorJones Ambrosi <jones.ambrosi@softdesign.com.br>2019-05-28 14:57:31 -0300
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-06-04 10:27:12 +0200
commitf9561144d79bad88ee5781e3b2c09fb7c8f7fd7d (patch)
tree80ad2e0deed24019a6181b2b590d8cd465f4b3fd /tests/admin_inlines
parentaa94f7c899b98f547fc1d26797ba892c38eaf415 (diff)
downloaddjango-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.py37
-rw-r--r--tests/admin_inlines/tests.py10
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.