Мое погружение в веб-разработку с использованием Django привело меня к увлекательному открытию функционала под названием list_display в административной панели Django.
Я хочу поделиться с вами своим опытом использования этого мощного инструмента на примере модели Vegetable с полями name, weight и expire_date.
Создание Модели Vegetable
Давайте начнем с создания простой модели Vegetable в файле models.py:
from django.db import models
from django.utils import timezone
class Vegetable(models.Model):
name = models.CharField(max_length=50)
weight = models.DecimalField(max_digits=5, decimal_places=2)
expire_date = models.DateField(default=timezone.now)Активация Административной Панели
После создания модели настало время внедрить ее в административную панель Django. В файле admin.py:
from django.contrib import admin
from .models import Vegetable
@admin.register(Vegetable)
class VegetableAdmin(admin.ModelAdmin):
list_display = ('name', 'weight', 'expire_date')Разбор list_display
list_display — это атрибут класса, который дает возможность определить, какие поля модели будут отображаться в списке объектов в административной панели. В данном примере были выбраны три поля: ‘name’, ‘weight’ и ‘expire_date’.
Интерактивное Использование
После активации административной панели с помощью list_display, вы мгновенно заметите его преимущество. Вместо обычного отображения, вы получите таблицу с вашими выбранными полями, что значительно облегчит визуальное восприятие данных.
Name: Картошка
Weight: 1.2 кг
Expire Date: 2024-04-20Это намного удобнее, чем рассматривать каждый объект отдельно.
Персонализация отображения
Однако list_display не ограничивается простым перечислением полей. Вы можете включить методы модели, свойства и даже функции в list_display, чтобы сделать вывод более информативным. Для примера, создадим метод в модели Vegetable для проверки просроченности:
class Vegetable(models.Model):
# ... (предыдущий код)
def is_expired(self):
return self.expire_date < timezone.now().date()
is_expired.boolean = True
is_expired.short_description = 'Expired'
Теперь вы можете добавить is_expired в list_display:
class VegetableAdmin(admin.ModelAdmin):
list_display = ('name', 'weight', 'expire_date', 'is_expired')Заключение
list_display — это мощное средство, которое значительно улучшает опыт работы с административной панелью Django. Он позволяет настраивать отображение данных так, чтобы оно соответствовало вашим требованиям. Используя его в сочетании с методами модели, вы можете создавать более информативные и легко читаемые списки объектов. Внедрите list_display в свой проект Django, и вы заметите, как сильно это повысит вашу продуктивность.








