Moved the call to _get_foreign_key to run in all cases catching incorrect inline setup sooner.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@11631 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Brian Rosner 2009-10-19 19:17:20 +00:00
parent 5fc35c9caf
commit cb7a3262b5
2 changed files with 23 additions and 5 deletions

View file

@ -20,7 +20,7 @@ class Song(models.Model):
return self.title
class Model11709(models.Model):
class TwoAlbumFKAndAnE(models.Model):
album1 = models.ForeignKey(Album, related_name="album1_set")
album2 = models.ForeignKey(Album, related_name="album2_set")
e = models.CharField(max_length=1)
@ -72,11 +72,27 @@ ImproperlyConfigured: SongInline cannot exclude the field 'album' - this is the
# 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
>>> class TwoAlbumFKAndAnEInline(admin.TabularInline):
... model = TwoAlbumFKAndAnE
... exclude = ("e",)
... fk_name = "album1"
>>> validate_inline(Model11709Inline, None, Album)
>>> validate_inline(TwoAlbumFKAndAnEInline, None, Album)
# Ensure inlines validate that they can be used correctly.
>>> class TwoAlbumFKAndAnEInline(admin.TabularInline):
... model = TwoAlbumFKAndAnE
>>> validate_inline(TwoAlbumFKAndAnEInline, None, Album)
Traceback (most recent call last):
...
Exception: <class 'regressiontests.admin_validation.models.TwoAlbumFKAndAnE'> has more than 1 ForeignKey to <class 'regressiontests.admin_validation.models.Album'>
>>> class TwoAlbumFKAndAnEInline(admin.TabularInline):
... model = TwoAlbumFKAndAnE
... fk_name = "album1"
>>> validate_inline(TwoAlbumFKAndAnEInline, None, Album)
"""}