Django admin: фильтр по минимальному и максимальному значению

Я хотел бы добавить фильтр в мою админку Django для фильтрации на основе плавающей точки с диапазоном в [0, 1]. Рассмотрим следующую модель:

class Color(models.Model):
    label = models.CharField(max_length=255, unique=True)
    confidence = models.FloatField(null=True)

Значение confidence всегда находится между 0 и 1. Я нашел довольно простой способ добавить фильтр, основанный на атрибуте label:

class AnnotationAdmin(admin.ModelAdmin):

    list_filter = (
        ("color__label", custom_titled_filter('Color')),
        # ("color__confidence", custom_titled_filter('Color Confidence')),
    )

Как добавить фильтр для выбора максимального и минимального значения достоверности цвета? Например, выбрать все цвета с доверием между 0.5 и 0.6.

На данный момент единственное решение, которое я нашел, это создать два разных класса фильтров, расширяющих admin.SimpleListFilter, и использовать один для выбора максимума, а другой для выбора минимума. Есть ли что-нибудь более простое, возможно поддерживаемое django из коробки?

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