DRF自定义过滤器的过滤方法
过滤Celery定时任务已完成和未完成的任务
from django_celery_beat.models import PeriodicTask
from django_filters import rest_framework as filters
class PeriodicTaskFilter(filters.FilterSet):
completed = filters.BooleanFilter(method='filter_completed')
class Meta:
model = PeriodicTask
fields = ['completed']
@staticmethod
def filter_completed(queryset, name, value):
if value:
return queryset.filter(last_run_at__isnull=False)
else:
return queryset.filter(last_run_at__isnull=True)