Noa*_*ore 10 python database django postgresql m2m
我在Django中使用以下模型模式(使用Postgres).
class A(Models.model):
related = models.ManyToManyField("self", null=True)
Run Code Online (Sandbox Code Playgroud)
给定A的QuerySet,我想返回一个字典A,将QuerySet中的每个实例尽可能快地映射到id其related实例的列表.
我可以肯定地遍历每个A并查询相关字段,但是有更优化的方法吗?
Lua*_*eca 12
据你有三个例子.您可以使用该values_list方法仅检索结果,并从此结果中获取其related实例的ID .我使用该pk字段作为我的过滤器,因为我不知道你的方案,但你可以使用任何东西,只是必须是一个QuerySet.
>>> result = A.objects.filter(pk=1)
>>> result.values('related__id')
[{'id': 2}, {'id': 3}]
>>> result.values_list('related__id')
[(2,), (3,)]
>>> result.values_list('related__id', flat=True)
[2, 3]
Run Code Online (Sandbox Code Playgroud)