РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
597 of 818 menu

date_hierarchy

Атрибут date_hierarchy в классе ModelAdmin позволяет добавить в административную панель навигацию по датам на странице списка объектов. Этот атрибут указывает имя поля модели, которое будет использоваться для создания иерархической навигации по датам, что значительно упрощает фильтрацию записей по временным периодам: годам, месяцам и дням.

Синтаксис

from django.contrib import admin from .models import Article @admin.register(Article) class ArticleAdmin(admin.ModelAdmin): date_hierarchy = 'field_name'

Пример . Работа с date_hierarchy

Рассмотрим модель Article, у которой есть поле created_at типа DateTimeField. Добавим навигацию по датам в административной панели:

from django.db import models class Article(models.Model): title = models.CharField(max_length=200) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) status = models.CharField(max_length=20) def __str__(self): return self.title
from django.contrib import admin from .models import Article @admin.register(Article) class ArticleAdmin(admin.ModelAdmin): list_display = ['title', 'status', 'created_at'] date_hierarchy = 'created_at'

Теперь в интерфейсе административной панели появится навигационная панель в верхней части списка статей. Она будет содержать ссылки для фильтрации по годам, при выборе года - по месяцам, а при выборе месяца - по дням.

Использование поля с датой

date_hierarchy может принимать как поле с типом DateField, так и DateTimeField. Если используется DateTimeField, то навигация будет учитывать только дату, время игнорируется:

from django.contrib import admin from .models import Event @admin.register(Event) class EventAdmin(admin.ModelAdmin): list_display = ['name', 'event_date'] date_hierarchy = 'event_date'

В этом случае навигационная панель будет построена на основе поля event_date, отображая список событий с возможностью фильтрации по датам.

Настройка отображения

date_hierarchy автоматически подстраивается под язык локали и отображает названия месяцев на языке, установленном в настройках Django. Это позволяет легко использовать навигацию в интернационализированных проектах.

from django.contrib import admin from .models import Order @admin.register(Order) class OrderAdmin(admin.ModelAdmin): list_display = ['id', 'customer', 'order_date'] list_filter = ['status'] search_fields = ['customer__name'] date_hierarchy = 'order_date'

Если дата в объекте не указана (например, null), то такие объекты отображаются в отдельной группе "Без даты" или игнорируются в навигации в зависимости от версии Django.

Смотрите также

  • атрибут list_display,
    который определяет отображаемые колонки в списке объектов
  • атрибут list_filter,
    который добавляет фильтры в боковую панель
  • атрибут search_fields,
    который добавляет поле поиска на страницу списка
  • атрибут ordering,
    который задает сортировку объектов в списке
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить