Add second non null condition to Django FilterSet

Viewed 22

How do you add a non-null constraint to a second field on a drf_filters.FilterSet?

In the case below, I would like to impose a second constraint that the model field called "obsolete" is not None.

class MyFilterSet(drf_filters.FilterSet):
    
    uploaded = drf_filters.IsoDateTimeFilter(
        field_name='uploaded_at',
        lookup_expr='gt',
        required=True
    )
1 Answers

You can work with a BooleanFilter [readthedocs.io]:

class MyFilterSet(drf_filters.FilterSet):
    uploaded = drf_filters.IsoDateTimeFilter(
        field_name='uploaded_at', lookup_expr='gt', required=True
    )
    is_obsolete = drf_filters.BooleanField(
        field_name='obsolete', lookup_expr='isnull', required=True
    )

This will thus add an extra boolean filter that if True will filter such that the obsolete field should be NULL/None, and if False not be None/NULL.

Related