相关疑难解决方法(0)

Django查询集可以获得精确的多任务查找

比方说,我有一个标签模型的pk列表

pk_list = [10, 6, 3]
Run Code Online (Sandbox Code Playgroud)

我有另一个模型,m2m字段的标签和一个实例,其中包含3个标签(上面的pks).

class Node(models.Model):
    ...
    tags = models.ManyToManyField(Tag, related_name='nodes')
Run Code Online (Sandbox Code Playgroud)

我想检索一个包含我的pk_list中指定的精确标记集的节点.当我做

Node.objects.filter(tags__in=pk_list)
Run Code Online (Sandbox Code Playgroud)

它返回三个相同实例的列表

[<Node: My node title>, <Node: My node title>, <Node: My node title>]
Run Code Online (Sandbox Code Playgroud)

调用.get()不起作用,因为它显然必须返回单个实例.

那么,我该如何检索单个实例?我必须注意,如果我的pk_list不同,例如.[10,6]或[10,6,3,7]然后我必须得到任何东西.我需要一个完全匹配.

谢谢

django django-orm django-queryset

17
推荐指数
1
解决办法
4267
查看次数

标签 统计

django ×1

django-orm ×1

django-queryset ×1