#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>&nbsp;<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>&nbsp;<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
-~----------~----~----~----~------~----~------~--~---

Reply via email to