Кнопка фильтра 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).
При фильтрации по нескольким критериям необходимо:
- Filter by frames
- Wait for the new response
- Filter by camera_model
- Wait again
- And so on..
Есть ли способ запустить фильтрацию один раз для всех, а не выполнять ее при каждом изменении поля?