Django Admin - Установити поля для відображення
Зробіть список більш зручним для читання
Коли ви відображаєте модель як список, Django відображає кожен запис як рядкове представлення об’єкта запису, який у нашому випадку є "Member object (1)", "Member object(2)" і т.д.:
Щоб змінити це на більш зручний для читання формат, у нас є два варіанти:
- Змінити функцію подання рядків,
__str__()
моделі Member - Встановити властивість
list_details
моделі Member
Змініть функцію представлення рядка
Щоб змінити представлення рядка, ми маємо визначити функцію __str__()
моделі Member в 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__()
не є функцією Django; це те, як змінити рядкове представлення об’єктів у Python. Дізнайтеся більше про об’єкти Python у нашому посібнику з об’єктів Python.
Установити list_display
Ми можемо керувати полями для відображення, вказавши їх у властивості 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)
.
Тепер поверніться до браузера, і ви повинні отримати цей результат: