Django queryset с левым соединением?
Предположим, что у меня есть
from django.db import models
class Obj(models.Model):
obj_text = models.CharField(max_length=100)
class ObjAnnot(models.Model):
obj = models.ForeignKey(Obj, on_delete=models.CASCADE)
annot_text = models.CharField(max_length=100)
Я хочу эффективно получить все Obj
объекты с нулевым количеством связанных ObjAnnot
экземпляров.
Я мог бы перебрать все экземпляры Obj
и запросить, сколько существует связанных экземпляров ObjAnnot
, но это кажется довольно неэффективным.
В SQL я бы сделал левое внешнее объединение и выбрал строки с objannot.id null.
Как я могу сделать это с помощью Django ORM?
РЕДАКТИРОВАТЬ: Возможное дублирование вопроса.