Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

question about admin.py list_display

#admin.py
class GameListAdmin(admin.ModelAdmin):
    list_display = ['game', 'position']
    ordering = ('position',)

class GameAdmin(admin.ModelAdmin):
    list_display = ['name', 'status']
    actions = [make_published]

#models.py
class Game(models.Model):
    name = models.CharField(max_length=200)
    status = models.CharField(max_length=1, choices=STATUS_CHOICES)

    def __unicode__(self):
        return self.name

class GameList(models.Model):
    game = models.ForeignKey(Game)
    position = models.IntegerField()

    def __unicode__(self):
        return self.game.name

I'm trying to show game.status in GameListAdmin's list_display but not sure how to do a backwards lookup using the ForeignKey in Admin.py

Any ideas?

like image 946
Rob B Avatar asked Jun 10 '26 12:06

Rob B


1 Answers

You can do it like this:

def get_status(obj):
    return '%s' % (obj.game.status)
get_status.short_description = 'Status'

class GameListAdmin(admin.ModelAdmin):
    list_display = ['game', 'position', get_status]

See the docs.

like image 188
Dominic Rodger Avatar answered Jun 12 '26 06:06

Dominic Rodger