My models are below:
class Label(models.Model):
name = CharField()
class Message(models.Model):
labels = ManyToManyField(Label)
class Thread(models.Model):
messages = ManyToManyField(Message)
I have to filter out thread whose all messages don't have label assigned.
Thread --> all Messages --> Labels.empty()
I have tried this Query:
Thread.objects.filter( Q(messages__labels__isnull=True) )
But it returns thread object, even if one message in that thread doesn't have label. How to get query which iterates all messages and check if labels are empty in that each message.