Django

Code

Changeset 9444

Show
Ignore:
Timestamp:
11/14/08 20:20:00 (2 months ago)
Author:
brosner
Message:

Fixed #9258 -- Use _default_manager in ForeignKeyRawIdWidget?.label_for_value. Thanks nullie for the patch.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/contrib/admin/widgets.py

    r8985 r9444  
    147147    def label_for_value(self, value): 
    148148        key = self.rel.get_related_field().name 
    149         obj = self.rel.to.objects.get(**{key: value}) 
     149        obj = self.rel.to._default_manager.get(**{key: value}) 
    150150        return '&nbsp;<strong>%s</strong>' % truncate_words(obj, 14) 
    151151 
  • django/trunk/tests/regressiontests/admin_widgets/models.py

    r8846 r9444  
    2525        return self.name 
    2626 
     27class HiddenInventoryManager(models.Manager): 
     28    def get_query_set(self): 
     29        return super(HiddenInventoryManager, self).get_query_set().filter(hidden=False)  
     30 
    2731class Inventory(models.Model): 
    2832   barcode = models.PositiveIntegerField(unique=True) 
    2933   parent = models.ForeignKey('self', to_field='barcode', blank=True, null=True) 
    3034   name = models.CharField(blank=False, max_length=20) 
     35   hidden = models.BooleanField(default=False) 
     36    
     37   # see #9258 
     38   default_manager = models.Manager() 
     39   objects = HiddenInventoryManager() 
    3140 
    3241   def __unicode__(self): 
     
    102111>>> print w.render('test', core.parent_id, attrs={}) 
    103112<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> 
     113 
     114# see #9258 
     115>>> hidden = Inventory.objects.create(barcode=93, name='Hidden', hidden=True)  
     116>>> child_of_hidden = Inventory.objects.create(barcode=94, name='Child of hidden', parent=hidden) 
     117>>> print w.render('test', child_of_hidden.parent_id, attrs={})  
     118<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> 
    104119""" % { 
    105120    'ADMIN_MEDIA_PREFIX': settings.ADMIN_MEDIA_PREFIX,