Кнопка фильтра Django-admin

Я пытаюсь создать страницу администратора в Django для моей модели Video.

Представление довольно простое, все, что я хочу сделать, это просматривать и фильтровать видеозаписи на основе выпадающих и временных фильтров. Вот мой код.

from django.contrib import admin
from django_admin_listfilter_dropdown.filters import DropdownFilter
from rangefilter.filters import DateTimeRangeFilter

@admin.register(Video)
class VideoAdmin(admin.ModelAdmin):
    list_display = ('file_hash', 'file_path', 'height', 'width', 'frames', 'camera_model' 'created_at')
    list_filter = (
        ('frames', DropdownFilter),
        ('created_at', DateTimeRangeFilter), 
        ('height', DropdownFilter),
        ('width', DropdownFilter),
        ('camera_model', DropdownFilter),
    )
    search_fields = ('file_hash', 'file_path', 'model',)

Решение хорошо работает для разумного количества записей. Однако, оно становится очень медленным, когда количество записей, сохраненных в db, значительно увеличивается (~1M).

При фильтрации по нескольким критериям необходимо:

  1. Filter by frames
  2. Wait for the new response
  3. Filter by camera_model
  4. Wait again
  5. And so on..

Есть ли способ запустить фильтрацию один раз для всех, а не выполнять ее при каждом изменении поля?

Вернуться на верх