我正在尝试为用户制作一个过滤器,以便通过创建的草稿对其进行过滤。我被困在覆盖 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)