我有一个这样定义的过滤器:
class MessageFilterSet(filters.FilterSet):
seen = filters.BooleanFilter(field_name="seen_at", lookup_expr="isnull")
有点管用。但这是错误的方法,传递 seen=True 将返回所有看不见的消息。
我不想更改 url 参数的名称,如何反转查找表达式?
试试这个:
class MessageFilterSet(filters.FilterSet):
seen = filters.BooleanFilter(field_name="seen_at", lookup_expr="isnull", exclude = True)
来自Django Filter Reference Docs:
排除
一个布尔值,指定 Filter 是否应该使用 filter 或排除查询集。默认为假。