#9258: Admin ForeignKeyRawIdWidget uses wrong manager for label lookup
------------------------------------+---------------------------------------
Reporter: nullie | Owner: nobody
Status: new | Milestone:
Component: Uncategorized | Version: 1.0
Resolution: | Keywords:
Stage: Accepted | Has_patch: 1
Needs_docs: 0 | Needs_tests: 0
Needs_better_patch: 0 |
------------------------------------+---------------------------------------
Changes (by nullie):
* needs_tests: 1 => 0
Comment:
{{{
Index: regressiontests/admin_widgets/models.py
===================================================================
--- regressiontests/admin_widgets/models.py (revision 9218)
+++ regressiontests/admin_widgets/models.py (working copy)
@@ -24,14 +24,22 @@
def __unicode__(self):
return self.name
+class HiddenInventoryManager(models.Manager):
+ def get_query_set(self):
+ return super(HiddenInventoryManager,
self).get_query_set().filter(hidden=False)
+
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)
+ hidden = models.BooleanField(default=False)
+ 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
+ default_manager = models.Manager()
+ objects = HiddenInventoryManager()
+ def __unicode__(self):
+ return self.name
+
__test__ = {'WIDGETS_TESTS': """
>>> from datetime import datetime
>>> from django.utils.html import escape, conditional_escape
@@ -97,10 +105,14 @@
>>> 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)
+>>> hidden = Inventory.objects.create(barcode=93, name='Hidden',
hidden=True)
+>>> child_of_hidden = Inventory.objects.create(barcode=94, name='Child of
hidden', parent=hidden)
>>> 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/?t=barcode" class="related-lookup"
id="lookup_id_test" onclick="return showRelatedObjectLookupPopup(this);">
<img src="%(ADMIN_MEDIA_PREFIX)simg/admin/selector-search.gif" width="16"
height="16" alt="Lookup" /></a> <strong>Apple</strong>
+>>> print w.render('test', child_of_hidden.parent_id, attrs={})
+<input type="text" name="test" value="93"
class="vForeignKeyRawIdAdminField" /><a
href="../../../admin_widgets/inventory/?t=barcode" class="related-lookup"
id="lookup_id_test" onclick="return showRelatedObjectLookupPopup(this);">
<img src="%(ADMIN_MEDIA_PREFIX)simg/admin/selector-search.gif" width="16"
height="16" alt="Lookup" /></a> <strong>Hidden</strong>
""" % {
'ADMIN_MEDIA_PREFIX': settings.ADMIN_MEDIA_PREFIX,
'STORAGE_URL': default_storage.url(''),
}}}
--
Ticket URL: <http://code.djangoproject.com/ticket/9258#comment:3>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---