Django 有条件地排除字段



我是 Django 的新手,在过滤方面遇到了一些麻烦。 请原谅人为的例子。 我有一些活动模型,与与会者有一对多的关系。 我想从我的一组活动中排除在波士顿发生的事件,但前提是只有 1 名与会者。 下面的代码是我尝试过的绝对不起作用的代码:

queryset = queryset.annotate(attendees_count=Count('attendees')).exclude(attendees_count=1, event_location__city="Boston")

我没有收到错误。 相反,它只是过滤掉"波士顿",而不考虑"attendees_count"。

除了实际执行我想要它执行的操作的查询之外,我还想了解为什么我所做的不起作用。 提前谢谢。

您确定原始查询集包含具有>1 名与会者的波士顿吗?

https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.exclude

多个参数通过 AND 在底层 SQL 中联接 语句,并且整个事情都包含在 NOT() 中

最新更新