summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2013-10-07 12:30:02 -0400
committerTim Graham <timograham@gmail.com>2013-10-07 12:30:02 -0400
commit617aceb1b4ec97b4d70f9b3071cb46a645f69f87 (patch)
tree93536e3daa0e23a5c6c47d445e472d7d86f5cebb /tests
parent4dbd95ad65fa3fc86af7391b28a759b401f530d1 (diff)
Fixed #18263 -- Corrrected handling of hidden fields in tabular admin inlines.
Thanks hvdklauw for the report and patch.
Diffstat (limited to 'tests')
-rw-r--r--tests/admin_inlines/admin.py17
-rw-r--r--tests/admin_inlines/models.py11
-rw-r--r--tests/admin_inlines/tests.py13
3 files changed, 40 insertions, 1 deletions
diff --git a/tests/admin_inlines/admin.py b/tests/admin_inlines/admin.py
index c69800851a..c141abe54e 100644
--- a/tests/admin_inlines/admin.py
+++ b/tests/admin_inlines/admin.py
@@ -165,6 +165,22 @@ class BinaryTreeAdmin(admin.TabularInline):
class SightingInline(admin.TabularInline):
model = Sighting
+# admin and form for #18263
+class SomeChildModelForm(forms.ModelForm):
+
+ class Meta:
+ fields = '__all__'
+ model = SomeChildModel
+ widgets = {
+ 'position': forms.HiddenInput,
+ }
+
+
+class SomeChildModelInline(admin.TabularInline):
+ model = SomeChildModel
+ form = SomeChildModelForm
+
+
site.register(TitleCollection, inlines=[TitleInline])
# Test bug #12561 and #12778
# only ModelAdmin media
@@ -184,3 +200,4 @@ site.register(ProfileCollection, inlines=[ProfileInline])
site.register(ParentModelWithCustomPk, inlines=[ChildModel1Inline, ChildModel2Inline])
site.register(BinaryTree, inlines=[BinaryTreeAdmin])
site.register(ExtraTerrestrial, inlines=[SightingInline])
+site.register(SomeParentModel, inlines=[SomeChildModelInline])
diff --git a/tests/admin_inlines/models.py b/tests/admin_inlines/models.py
index dde5cf79e3..36e9e8e54d 100644
--- a/tests/admin_inlines/models.py
+++ b/tests/admin_inlines/models.py
@@ -221,6 +221,17 @@ class Sighting(models.Model):
et = models.ForeignKey(ExtraTerrestrial)
place = models.CharField(max_length=100)
+
+# Models for #18263
+class SomeParentModel(models.Model):
+ name = models.CharField(max_length=1)
+
+
+class SomeChildModel(models.Model):
+ name = models.CharField(max_length=1)
+ position = models.PositiveIntegerField()
+ parent = models.ForeignKey(SomeParentModel)
+
# Other models
class ProfileCollection(models.Model):
diff --git a/tests/admin_inlines/tests.py b/tests/admin_inlines/tests.py
index b7765b7f86..871852425a 100644
--- a/tests/admin_inlines/tests.py
+++ b/tests/admin_inlines/tests.py
@@ -12,7 +12,8 @@ from .admin import InnerInline
from .models import (Holder, Inner, Holder2, Inner2, Holder3, Inner3, Person,
OutfitItem, Fashionista, Teacher, Parent, Child, Author, Book, Profile,
ProfileCollection, ParentModelWithCustomPk, ChildModel1, ChildModel2,
- Sighting, Novel, Chapter, FootNote, BinaryTree)
+ Sighting, Novel, Chapter, FootNote, BinaryTree, SomeParentModel,
+ SomeChildModel)
@override_settings(PASSWORD_HASHERS=('django.contrib.auth.hashers.SHA1PasswordHasher',))
@@ -126,6 +127,16 @@ class TestInline(TestCase):
response = self.client.get('/admin/admin_inlines/capofamiglia/add/')
self.assertContains(response, '<img src="/static/admin/img/icon-unknown.gif" class="help help-tooltip" width="10" height="10" alt="(Help text for ReadOnlyInline)" title="Help text for ReadOnlyInline" />', 1)
+ def test_inline_hidden_field_no_column(self):
+ """#18263 -- Make sure hidden fields don't get a column in tabular inlines"""
+ parent = SomeParentModel.objects.create(name='a')
+ SomeChildModel.objects.create(name='b', position='0', parent=parent)
+ SomeChildModel.objects.create(name='c', position='1', parent=parent)
+ response = self.client.get('/admin/admin_inlines/someparentmodel/%s/' % parent.pk)
+ self.assertNotContains(response, '<td class="field-position">')
+ self.assertContains(response, (
+ '<input id="id_somechildmodel_set-1-position" '
+ 'name="somechildmodel_set-1-position" type="hidden" value="1" />'))
def test_non_related_name_inline(self):
"""