summaryrefslogtreecommitdiff
path: root/tests/regressiontests/admin_validation/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/regressiontests/admin_validation/models.py')
-rw-r--r--tests/regressiontests/admin_validation/models.py26
1 files changed, 22 insertions, 4 deletions
diff --git a/tests/regressiontests/admin_validation/models.py b/tests/regressiontests/admin_validation/models.py
index bd83f80a1b..1ff89e2502 100644
--- a/tests/regressiontests/admin_validation/models.py
+++ b/tests/regressiontests/admin_validation/models.py
@@ -4,12 +4,16 @@ Tests of ModelAdmin validation logic.
from django.db import models
+class Album(models.Model):
+ title = models.CharField(max_length=150)
+
class Song(models.Model):
title = models.CharField(max_length=150)
-
+ album = models.ForeignKey(Album)
+
class Meta:
ordering = ('title',)
-
+
def __unicode__(self):
return self.title
@@ -19,9 +23,7 @@ __test__ = {'API_TESTS':"""
>>> from django.contrib import admin
>>> from django.contrib.admin.validation import validate
-#
# Regression test for #8027: custom ModelForms with fields/fieldsets
-#
>>> class SongForm(forms.ModelForm):
... pass
@@ -40,4 +42,20 @@ Traceback (most recent call last):
...
ImproperlyConfigured: 'InvalidFields.fields' refers to field 'spam' that is missing from the form.
+# Regression test for #9932 - exclude in InlineModelAdmin
+# should not contain the ForeignKey field used in ModelAdmin.model
+
+>>> class SongInline(admin.StackedInline):
+... model = Song
+... exclude = ['album']
+
+>>> class AlbumAdmin(admin.ModelAdmin):
+... model = Album
+... inlines = [SongInline]
+
+>>> validate(AlbumAdmin, Album)
+Traceback (most recent call last):
+ ...
+ImproperlyConfigured: SongInline cannot exclude the field 'album' - this is the foreign key to the parent model Album.
+
"""}