找出 ManyRelatedManager 是否是 django 中的空 QuerySet 的最佳方法是什么?



我有 2 个模型, BaconEggs两者都ForeignKey Spam模型。

我需要找出与Eggs无关的培根,目前我通过以下方式

进行:
objs = Bacon.objects.select_related.filter(somefilter=value)
for obj in objs:
    if obj.spam.eggsspam.count():
        continue
    do_something()

我相信一定有更优化的方法吗?

尝试:

Bacon.objects.filter([m2m_field_name]__isnull=True)

你想要注释。代码将如下所示:

Bacon.objects.annotate(num_eggs=Count('spam__egg_set')).filter(num_eggs__eq=0)

相关内容

最新更新