Quản trị viên Django - Đặt trường để hiển thị
Làm cho danh sách hiển thị thân thiện hơn với người đọc
Khi bạn hiển thị Mô hình dưới dạng danh sách, Django hiển thị từng bản ghi dưới dạng biểu diễn chuỗi của đối tượng bản ghi, trong trường hợp của chúng tôi là "Đối tượng thành viên (1)", "Đối tượng thành viên (2)", v.v.:
Để thay đổi điều này sang định dạng thân thiện hơn với người đọc, chúng tôi có hai lựa chọn:
- Thay đổi hàm biểu diễn chuỗi
__str__()
của Member Model - Đặt thuộc tính
list_details
của Mô hình thành viên
Thay đổi chức năng biểu diễn chuỗi
Để thay đổi cách biểu diễn chuỗi, chúng ta phải xác định hàm __str__()
của Member Model trong models.py
, như sau:
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}"
Điều này cho chúng ta kết quả này:
Việc xác định hàm __str__()
của riêng chúng ta không phải là một tính năng của Django, đó là cách thay đổi cách biểu diễn chuỗi của các đối tượng trong Python. Đọc thêm về các đối tượng Python trong hướng dẫn về đối tượng Python của chúng tôi.
Đặt list_display
Chúng ta có thể kiểm soát các trường hiển thị bằng cách chỉ định chúng trong thuộc tính list_display
trong tệp admin.py
.
Trước tiên hãy tạo một lớp MemberAdmin()
và chỉ định bộ list_display
, như thế này:
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)
Hãy nhớ thêm MemberAdmin làm đối số trong admin.site.register(Member, MemberAdmin)
.
Bây giờ hãy quay lại trình duyệt và bạn sẽ nhận được kết quả này: