У меня есть pk список экземпляров модели Tag, скажем
pk_list = [10, 6, 3]
У меня есть еще одна модель с тегом m2m тегов и экземпляр, который содержит ровно 3 тега (выше pks).
class Node(models.Model):
...
tags = models.ManyToManyField(Tag, related_name='nodes')
Я хотел бы получить Node, который содержит точный набор тегов, как указано в моем pk_list. Когда я делаю
Node.objects.filter(tags__in=pk_list)
он возвращает список из трех одинаковых экземпляров
[<Node: My node title>, <Node: My node title>, <Node: My node title>]
Вызов .get() не работает, потому что он должен возвращать один экземпляр, очевидно.
Итак, как я могу получить один экземпляр? Я должен отметить, что если мой pk_list был другим, например. [10, 6] или [10, 6, 3, 7], тогда я ничего не должен получать. Мне нужно точное соответствие.
Спасибо