В Django есть несколько способов упорядочить модели в админке. Один из способов - использовать атрибут ordering
внутри класса модели.
Атрибут ordering
Атрибут ordering
позволяет определить порядок сортировки записей, когда они отображаются в админке. Этот атрибут можно установить внутри класса модели, и он будет применяться везде, где используется эта модель.
Пример:
class MyModel(models.Model): # поля модели class Meta: ordering = ['-date_created']
В этом примере модель MyModel
будет отсортирована по убыванию даты создания. Если вы хотите сортировать по нескольким полям, вы можете указать их внутри списка.
Сортировка с использованием get_queryset
Еще один способ упорядочить модели в админке - переопределить метод get_queryset
в классе ModelAdmin
. Этот метод возвращает запрос, который используется для получения записей модели. Вы можете использовать метод order_by
в этом запросе, чтобы указать нужный порядок сортировки.
Пример:
class MyModelAdmin(admin.ModelAdmin): # другие настройки админки def get_queryset(self, request): queryset = super().get_queryset(request) queryset = queryset.order_by('-date_created') return queryset
В этом примере мы переопределяем метод get_queryset
в классе MyModelAdmin
и устанавливаем сортировку по убыванию даты создания.
Настраиваемая сортировка по умолчанию
Если вам нужно упорядочить модели в админке по умолчанию для всех пользователей, вы можете использовать атрибут ordering
в классе ModelAdmin
. Этот атрибут будет применяться ко всем моделям, которые используют этот класс админки.
Пример:
class MyModelAdmin(admin.ModelAdmin): ordering = ['-date_created'] admin.site.register(MyModel, MyModelAdmin)
В этом примере мы устанавливаем сортировку по умолчанию для модели MyModel
через класс MyModelAdmin
.
В заключение, в Django есть несколько способов упорядочить модели в админке. Вы можете использовать атрибут ordering
внутри класса модели, переопределить метод get_queryset
в классе ModelAdmin
, или установить настраиваемую сортировку по умолчанию через класс ModelAdmin
.