Python Django:Override SimpleListFilter get_queryset方法(超级(类型,obj):obj必须是类型的实例或子类型
我正在尝试为用户制作一个过滤器,以便通过创建的草稿对其进行过滤。我被困在里面,无法覆盖get_queryset 这是我得到的错误: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
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
方法。检查此示例: