【发布时间】:2013-04-25 19:37:34
【问题描述】:
我有一个 Tag 模型实例的 pk 列表,比如说
pk_list = [10, 6, 3]
我有另一个带有 m2m 标签字段的模型和一个包含恰好 3 个标签(以上 pks)的实例。
class Node(models.Model):
...
tags = models.ManyToManyField(Tag, related_name='nodes')
我想检索一个包含我的 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] 那么我必须什么也得不到。我需要精确匹配。
谢谢
【问题讨论】:
-
我正要回答,结果发现帖子是我!
-
感谢cmets,抱歉重复,我不是故意的。
标签: django django-queryset django-orm