我正在为我的开发板软件实现“忽略的用户”功能。该功能必须隐藏由用户忽略的成员启动的线程。我决定将被忽略用户的 ID 获取到 python 列表,如果该列表不为空,则将排除添加到查询集。
if ignored_users:
queryset_threads = queryset_threads.exclude(start_poster_id__in=ignored_users)
但是,exclude 的工作方式存在问题,即“调用 filter() 并在开头添加 NOT”。在这里,过滤器产生以下 SQL:
`threads_thread` . `start_poster_id` IN (2, 3, 4, 5) AND `threads_thread` . `start_poster_id` NOT NULL
我如何摆脱那个 NOT NULL ?已删除帐户的成员发布的主题在“start_poster_id”列中为 NULL。