Django 非空过滤器

问题描述 投票:0回答:1

我有一个这样定义的过滤器:

class MessageFilterSet(filters.FilterSet):
    seen = filters.BooleanFilter(field_name="seen_at", lookup_expr="isnull")

有点管用。但这是错误的方法,传递 seen=True 将返回所有看不见的消息。

我不想更改 url 参数的名称,如何反转查找表达式?

python django django-filter
1个回答
0
投票

试试这个:

class MessageFilterSet(filters.FilterSet):
    seen = filters.BooleanFilter(field_name="seen_at", lookup_expr="isnull", exclude = True)

来自Django Filter Reference Docs:

排除

一个布尔值,指定 Filter 是否应该使用 filter 或排除查询集。默认为假。

© www.soinside.com 2019 - 2024. All rights reserved.