在Django Admin屏幕中显示父表中的字段

时间:2012-01-01 18:54:07

标签: django django-admin

我想在管理界面中显示一个链接到另一个模型的模型中的字段。

我有这样的模型:

class Location(models.Model):
    name = models.CharField(max_length = 128)
    description = models.TextField(blank = True)

class Building(models.Model):
    name = models.CharField(max_length = 128)
    description = models.TextField(blank = True)    
    location = models.ForeignKey(Location)  

class Room(models.Model):
    name = models.CharField(max_length = 128)
    description = models.TextField(blank = True)    
    building = models.ForeignKey(Building)

这样的管理员模型:

class BuildingAdmin(admin.ModelAdmin):
    list_display = ('name', 'location') 

class RoomAdmin(admin.ModelAdmin):
    list_display = ('name', 'building')

如何在管理列表中显示房间模型3列,房间名称,建筑物名称和位置名称?

由于

1 个答案:

答案 0 :(得分:1)

您可以在管理员中编写自定义方法,并在list_display中使用它。

class PersonAdmin(admin.ModelAdmin):
    list_display = ('upper_case_name',)

    def upper_case_name(self, obj):
      return ("%s %s" % (obj.first_name, obj.last_name)).upper()
    upper_case_name.short_description = 'Name'

这样你就可以在list_display中显示你想要的任何内容。 Here您有完整的文档。