【发布时间】:2013-01-12 10:14:17
【问题描述】:
我正在为我的开发板软件实现“忽略用户”功能。该功能必须隐藏由用户忽略的成员启动的线程。我决定将被忽略用户的 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。
【问题讨论】:
标签: django django-orm