【发布时间】:2021-11-24 21:54:34
【问题描述】:
我有一个模型,称为卡片,其中包含许多我想要循环的元素。所以我试图使用一些字典理解如下:
cards = Card.objects.filter(device=device)
output = { c.id : [c.generateData(), c.sensor.getLatestTime()] for c in cards}
在运行该代码时,它在输出语句上中断并出现以下错误:
精确查找的 QuerySet 值必须限制为一个结果 使用切片。
我为该确切错误找到的大多数预先存在的答案都是针对查询集与单个字段混淆的情况,例如1、2。但是在我的情况下,我期待并通过循环将其作为查询集处理。
我还在here 中看到了一个关于在模型上使用字典理解的类似问题,但是据我所知,我的格式几乎相同(除非作为第二个参数的列表导致问题不知何故?)
编辑:我在尝试测试错误发生的位置时注意到,即使是简单的 for 循环,例如:
for card in cards:
给出了同样的错误,错误似乎在某种程度上:
cards = Card.objects.filter(device=device)
老实说,这对我来说没有多大意义。感觉好像我忘记了一些基本的东西,但我还看不到它。
【问题讨论】:
-
您显示的代码没有问题。完整的回溯以及设备的 Card 类定义以及您如何获取传递给过滤器的设备值将非常有帮助...
-
在发送问题前进行了一个小时的故障排除后,在发布问题 30 分钟后,我想通了。不过感谢您的帮助。毕竟最烦人的问题似乎总是最简单的......
标签: python django django-models dictionary-comprehension