Альтернатива group_concat в django

У меня есть 2 модели с отношениями "многие-ко-многим":

class Tag(models.Model):
    name = models.CharField(max_length=100, unique=True)


class TagName(models.Model):
    name = models.CharField(max_length=6, unique=True)
    tags = models.ManyToManyField(Tag)

У меня есть выпадающий список, который позволяет выбирать несколько тегов. Я хочу проверить, существует ли TagName с выбранными тегами. Я не хочу использовать GROUP_CONCAT и сырой sql. Я нашел это решение, но оно не работает с переменным количеством тегов, например, оно возвращает TagNames, связанные с тегами [1,2,3,4,5] и [1,2,3,4] в случае выбора тегов [1,2,3,4].

TagName.objects.filter(tags__pk__in=[1, 2, 3, 4]).annotate(num_attr=Count('tags')).filter(num_attr=len([1, 2, 3, 4]))

Есть ли способ сделать это, используя только методы Django?

Заранее спасибо!

Вернуться на верх