过滤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)