Hi,

I'm trying to use list_display in the django-admin, and I can't seem to find 
a way to get list_display to follow FK links.

My models.py:

class Site(models.Model):
    name = models.CharField(max_length=50, unique=True)
    description = models.TextField()
    
    def __unicode__(self):
        return u'%s' % (self.name) 

class AccommodationFeature(models.Model):
    name = models.CharField(max_length=50, unique=True)
    description = models.TextField() 

class AccommodationRoom(models.Model):
    name = models.CharField(max_length=50)
    site = models.ForeignKey(Site)
    features = models.ManyToManyField(AccommodationFeature, null=True, 
blank=True)
    
    def __unicode__(self):
        return u'%s' % (self.name) 

class BedAvailability(models.Model):
    number_of_single_beds = models.IntegerField()
    number_of_double_beds = models.IntegerField()
    conference = models.ForeignKey(Conference)
    accommodation_room = models.ForeignKey(AccommodationRoom)
    
    class Meta:
        verbose_name_plural = 'bed availabilities'
        
    def __unicode__(self):
        return u'Availability for %s at %s' % (self.accommodation_room, 
self.conference)
    # Surely this isredundant? hmm, list_dispaly doesn't seem to follow 
foreignkey relationships?
    def site_name(self):
        return u'%s' % (self.accommodation_room.site.name)

Each "Site" has multiple "AccommodationRooms", which in turn have 
"BedAvailabilities".

In the BedAvailabilitiesAdmin, for list_display, I'm trying to follow 
self.accommodation_room.site. This doesn't work using either dot notation or 
double-underscore notation.

Other ModelAdmin options seem to allow following FK links, using the double 
underscore notation.

E.g. ModelAdmin.search_fields allows you to search across FK's using:

search_fields = ['foreign_key__related_fieldname']


list_filter also seems to allow the same behaviour.
 
At the moment, I'm just using a function on BedAvailabilities to follow the 
relationships and print the site name. However, this seems a bit silly when 
logic would dictate that list_display behaves the same as search_fields and 
list_filter.
 
Is there any reason this feature doesn't work for list_display?

There's some discussion of it on SO:

http://stackoverflow.com/questions/163823/can-list-display-in-a-django-modeladmin-display-attributes-of-foreignkey-fields

And a ticket for it her:

http://code.djangoproject.com/ticket/5863

but discussion seems to have petered off. Is there a technical or design 
reason for this?

Cheers,
Victor

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to