Python Django:Override SimpleListFilter get_queryset方法(超级(类型,obj):obj必须是类型的实例或子类型

Python Django:Override SimpleListFilter get_queryset方法(超级(类型,obj):obj必须是类型的实例或子类型,python,django,django-admin,django-admin-filters,Python,Django,Django Admin,Django Admin Filters,我正在尝试为用户制作一个过滤器,以便通过创建的草稿对其进行过滤。我被困在里面,无法覆盖get_queryset 这是我得到的错误: super(type, obj): obj must be an instance or subtype of type 我错过了什么 class DraftFilter(SimpleListFilter): title = _('created drafts') parameter_name = 'user_drafts' def lo

我正在尝试为用户制作一个过滤器,以便通过创建的草稿对其进行过滤。我被困在里面,无法覆盖get_queryset

这是我得到的错误:

super(type, obj): obj must be an instance or subtype of type
我错过了什么

class DraftFilter(SimpleListFilter):
    title = _('created drafts')
    parameter_name = 'user_drafts'

    def lookups(self, request, model_admin):
        return(
            ('has_drafts', 'Yes'),
            ('no_drafts', 'No'),
        )

    def queryset(self, request, queryset):

        def get_drafts(status):
            return super().get_queryset(request).annotate(
                has_drafts=Exists(Operation.objects.filter(company_id=OuterRef('pk')))
            ).filter(has_drafts=status)

        if not self.value():
            return queryset

        if self.value().lower() == 'has_drafts':
            return get_drafts(True)

        if self.value().lower() == 'no_drafts':
            return get_drafts(False)

您将父queryset作为参数,是否确实需要调用父方法?看起来SimpleListFilter没有
get\u queryset
方法,而是
queryset
方法。检查此示例: