Django 管理后台 - 设置要显示的字段

让列表显示更易于阅读

当您将模型显示为列表时,Django 会将每条记录显示为记录对象的字符串表示形式,在本例中为"成员对象 (1)"、"成员对象 (2)"等等:

为了将其更改为更易于阅读的格式,我们有两种选择:

  1. 更改成员模型的字符串表示函数 __str__()
  2. 设置 MemberAdmin 类的 list_display 属性

更改字符串表示函数

要更改字符串表示,我们需要在 models.py 文件中定义成员模型的 __str__() 函数,如下所示:

my_tennis_club/members/models.py:

from django.db import models

class Member(models.Model):
  firstname = models.CharField(max_length=255)
  lastname = models.CharField(max_length=255)
  phone = models.IntegerField(null=True)
  joined_date = models.DateField(null=True)

  def __str__(self):
    return f"{self.firstname} {self.lastname}"

由此我们得到以下结果:

定义我们自己的 __str__() 函数不是 Django 的功能,而是在 Python 中改变对象的字符串表示形式的方法。阅读我们的Python 对象教程,了解更多关于 Python 对象的信息。


设置 list_display

我们可以通过在 admin.py 文件中的 list_display 属性中指定要显示的字段来控制它们。

首先创建一个 MemberAdmin() 类,并指定 list_display 元组,如下所示:

my_tennis_club/members/admin.py:

from django.contrib import admin
from .models import Member

# 在这里注册您的模型。

class MemberAdmin(admin.ModelAdmin):
  list_display = ("firstname", "lastname", "joined_date",)
  
admin.site.register(Member, MemberAdmin)

请记住在 admin.site.register(Member, MemberAdmin) 中添加 MemberAdmin 作为参数。

现在返回浏览器,你应该会看到这样的结果: