diff options
| author | Brian Rosner <brosner@gmail.com> | 2008-09-01 22:43:38 +0000 |
|---|---|---|
| committer | Brian Rosner <brosner@gmail.com> | 2008-09-01 22:43:38 +0000 |
| commit | ce47d4ab830bb96fe9325b9ccd077619116fd548 (patch) | |
| tree | 6e061d6596a3d0155db45b6a06f28d2cc0b1d4cc /tests/regressiontests/admin_widgets | |
| parent | dcb0e8f959148331cde89def02ce28be3b248039 (diff) | |
Fixed #8648 -- Admin no longer ignores to_field. Thanks for the help Karen Tracey and SmileyChris.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@8823 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/admin_widgets')
| -rw-r--r-- | tests/regressiontests/admin_widgets/models.py | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/tests/regressiontests/admin_widgets/models.py b/tests/regressiontests/admin_widgets/models.py index e178a750e3..2bc907557a 100644 --- a/tests/regressiontests/admin_widgets/models.py +++ b/tests/regressiontests/admin_widgets/models.py @@ -5,14 +5,14 @@ from django.core.files.storage import default_storage class Member(models.Model): name = models.CharField(max_length=100) - + def __unicode__(self): return self.name class Band(models.Model): name = models.CharField(max_length=100) members = models.ManyToManyField(Member) - + def __unicode__(self): return self.name @@ -20,10 +20,18 @@ class Album(models.Model): band = models.ForeignKey(Band) name = models.CharField(max_length=100) cover_art = models.FileField(upload_to='albums') - + def __unicode__(self): return self.name +class Inventory(models.Model): + barcode = models.PositiveIntegerField(unique=True) + parent = models.ForeignKey('self', to_field='barcode', blank=True, null=True) + name = models.CharField(blank=False, max_length=20) + + def __unicode__(self): + return self.name + __test__ = {'WIDGETS_TESTS': """ >>> from datetime import datetime >>> from django.utils.html import escape, conditional_escape @@ -84,6 +92,15 @@ True >>> w._has_changed([1, 2], [u'1', u'3']) True +# Check that ForeignKeyRawIdWidget works with fields which aren't related to +# the model's primary key. +>>> apple = Inventory.objects.create(barcode=86, name='Apple') +>>> pear = Inventory.objects.create(barcode=22, name='Pear') +>>> core = Inventory.objects.create(barcode=87, name='Core', parent=apple) +>>> rel = Inventory._meta.get_field('parent').rel +>>> w = ForeignKeyRawIdWidget(rel) +>>> print w.render('test', core.parent_id, attrs={}) +<input type="text" name="test" value="86" class="vForeignKeyRawIdAdminField" /><a href="../../../admin_widgets/inventory/" class="related-lookup" id="lookup_id_test" onclick="return showRelatedObjectLookupPopup(this);"> <img src="/admin_media/img/admin/selector-search.gif" width="16" height="16" alt="Lookup" /></a> <strong>Apple</strong> """ % { 'ADMIN_MEDIA_PREFIX': settings.ADMIN_MEDIA_PREFIX, 'STORAGE_URL': default_storage.url(''), |
