Альтернатива 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?
Заранее спасибо!