Фильтрация поля ManyToMany если оно пусто в подзапросе

Мне нужно игнорировать условие, если поле ManyToManyField пусто, и наоборот, применить условие, если не пусто, что я пытаюсь сделать:

class Book(models.Model):
    author = models.ForeignKey(Author, on_delete=models.CASCADE)


class BookSearch(model.Models):
    authors = models.ManyToManyField(Author)
    
    
BookSearch.objects.annotate(
    books_count=Subquery(
        Book.objects.filter(
            Q(author__in=OuterRef('authors')) | Q(OuterRef('authors') == None),
        ).values('id').annotate(c=Count('id')).values('c')[:1]
    )
).values('books_count')

В блоке OuterRef ('authors') == None я пытаюсь проверить условие, очевидно что не сработает, это просто пример того чего я хочу достичь, я пытался разобраться но пока не получается, буду благодарен за помощь.


Ответы (0 шт):