Как упорядочить модели в админке?

В 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.