Django列表过滤器没有任何影响

时间:2015-09-07 21:18:44

标签: python django django-queryset

我有一些我创建的列表过滤器。除了一个,所有这些都有效。课程对学生来说是一把外键。我想根据学生是否添加任何课程来过滤学生。代码是:

class ClassesAddedListFilter(admin.SimpleListFilter):
    title = _('has added classes')

    parameter_name = 'classes'

    def lookups(self, request, model_admin):
        return (
                (1, 'Has Classes'),
                (0, 'No Classes')
        )

    def queryset(self, request, queryset):
        if self.value == 1:
            return queryset.annotate(class_count = Count('class')).filter(class_count__gt=0)
        if self.value == 0:
            return queryset.annotate(class_count = Count('class')).filter(class_count=0)

过滤器在管理界面中正确呈现,当我点击其中一个过滤器选项时,它似乎正在工作(使用get参数加载新页面)但不会发生过滤(它甚至返回所有实例)虽然有些没有课程)。我检查了我在shell中应用的过滤器,它完成了我的意图。任何人都可以帮助我解决我所缺少的问题吗?

0 个答案:

没有答案