我是Django的新手,在过滤方面遇到了一些麻烦。请原谅人为的例子。我有一些活动模型,与参加者有一对多的关系。从我的一系列活动中我想排除在波士顿发生的事件,但前提是只有1名与会者。下面的代码是我尝试过的,但绝对不起作用:
queryset = queryset.annotate(attendees_count=Count('attendees')).exclude(attendees_count=1, event_location__city="Boston")
我没有收到错误。相反,它只是过滤掉"波士顿"无论"参与者_计数"。
除了实际执行我想要的操作的查询之外,我还想了解为什么我所做的并不起作用。提前谢谢。
答案 0 :(得分:0)
您确定原始查询集包含波士顿> 1与会者吗?
https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.exclude
在底层SQL中通过AND连接多个参数 声明,整个事情都包含在NOT()
中