如何从多个表中只获取一个对象,而不是查询集?

2024-06-13 15:08:49 发布

您现在位置:Python中文网/ 问答频道 /正文

表格图像:

id| image   | item_id
15|some/path|   45
16|some/path|   45
17|some/path|   45

第一次尝试:

recommended_items = Item.objects.all().filter(rating__gte=9) // All my items (`item_id` column)

for item in recommended_items :
    image = Images.objects.get(item_id=item.id)[:1]

它适用于带有id=45的第一项,但对于其余项,它返回错误

Images matching query does not exist.

第二次尝试:

for item in recommended_items :
    image = Images.objects.filter(item=item)[:1]

现在它适用于所有项目,无论是否存在,但它返回iterate对象,我应该为一个对象添加for循环,如下所示:

for i in image:
    print(i.image)

正确的处理方法是什么?我只想要一张唱片(如果可能的话,最后一张)


Tags: path对象in图像imageidforobjects
2条回答

为什么不直接使用元素的索引呢

for item in recommended_items :
    image = Images.objects.filter(item=item)[0]

请使用下面的last()方法

image = Images.objects.filter(item=item).last()

第一次使用first()方法

image = Images.objects.filter(item=item).first()

相关问题 更多 >