Django Admin - 设置要显示的字段


使列表显示更加方便读者

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

要将其更改为更适合读者的格式,我们有两种选择:

  1. 改变字符串表示函数,__str__()会员模型
  2. 设置list_details会员模型的属性

更改字符串表示函数

要更改字符串表示形式,我们必须定义__str__()会员模型的功能models.py, 像这样:

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__()function 不是 Django 功能,它是如何更改 Python 中对象的字符串表示形式。在我们的文章中阅读有关 Python 对象的更多信息Python 对象教程


设置列表显示

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

首先创建一个MemberAdmin()类并指定list_display元组,像这样:

my_tennis_club/members/admin.py:

from django.contrib import admin
from .models import Member

# Register your models here.

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

请记住将 MemberAdmin 添加为参数admin.site.register(Member, MemberAdmin)

现在返回浏览器,您应该得到以下结果: