From fb8653ad0e4f4a927c82ea8009dbd3877412e4db Mon Sep 17 00:00:00 2001 From: Brian Rosner Date: Mon, 19 Oct 2009 19:20:52 +0000 Subject: [1.1.X] Fixed #11709 — Pass inline fk_name attribute when grabbing foreign key to test for exclusion. Thanks yishaibeeri for the report. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Backport of [11630] from trunk git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@11632 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/regressiontests/admin_validation/models.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/regressiontests/admin_validation/models.py b/tests/regressiontests/admin_validation/models.py index 1ff89e2502..08d8d94b4f 100644 --- a/tests/regressiontests/admin_validation/models.py +++ b/tests/regressiontests/admin_validation/models.py @@ -4,9 +4,11 @@ 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) @@ -17,11 +19,19 @@ class Song(models.Model): def __unicode__(self): return self.title + +class Model11709(models.Model): + album1 = models.ForeignKey(Album, related_name="album1_set") + album2 = models.ForeignKey(Album, related_name="album2_set") + e = models.CharField(max_length=1) + + + __test__ = {'API_TESTS':""" >>> from django import forms >>> from django.contrib import admin ->>> from django.contrib.admin.validation import validate +>>> from django.contrib.admin.validation import validate, validate_inline # Regression test for #8027: custom ModelForms with fields/fieldsets @@ -58,4 +68,15 @@ Traceback (most recent call last): ... ImproperlyConfigured: SongInline cannot exclude the field 'album' - this is the foreign key to the parent model Album. +# Regression test for #11709 - when testing for fk excluding (when exclude is +# given) make sure fk_name is honored or things blow up when there is more +# than one fk to the parent model. + +>>> class Model11709Inline(admin.TabularInline): +... model = Model11709 +... exclude = ("e",) +... fk_name = "album1" + +>>> validate_inline(Model11709Inline, None, Album) + """} -- cgit v1.3