Добавление метода в поле модели, объявленное в мета-классе

#django #django-filter

#django #django-фильтр

Вопрос:

Возможно ли добавить метод к полю, объявленному в мета-классе FilterSet, который обрабатывает значение, указанное перед фильтрацией?

В следующем

 class MoldelAFilter(filters.FilterSet):
    class Meta:
        model = ModelA
        fields = { 
            'name': ['exact', 'contain'], 
            'ts': ['exact', 'gt', 'lt'] 
        }
 

Я хочу обработать значение, переданное в ‘ts’ (например: ‘2020-11-02’) перед фильтрацией

Комментарии:

1. Нет, это невозможно. Вы должны явно определить поля с method параметром

2. @JPG Хммм, и как бы вы это сделали в этом случае? Кстати, спасибо за ответ 🙂

3. как я уже сказал, я бы выбрал отдельные поля

4. @JPG Да, я это понял, возможно, мой вопрос-комментарий был непонятен, извините. Я новичок в django-filter, и после прочтения документов мне было непонятно, как я могу это сделать (отдельные поля). Потому что, когда я пытаюсь объявить поля перед классом Meta, я получаю следующее AssertionError: Setting 'Meta.model' without either 'Meta.fields' or 'Meta.exclude' has been deprecated since 0.15.0 and is now disallowed. Add an explicit 'Meta.fields' or 'Meta.exclude' to the ModelAFilter class.