gpt4 book ai didi

python - 使用外键从另一个模型访问对象

转载 作者:行者123 更新时间:2023-11-29 00:11:47 25 4
gpt4 key购买 nike

在我的 django 项目中,我有一个模型,它存储用户的位置,其中 user_id 是 django User 模型的外键。这是模型

class Points(models.Model):
user_id = models.ForeignKey(User)
lat = models.FloatField()
lon = models.FloatField()

现在我想执行这样的查询:

Points.objects.filter(user_id=id).values_list('user_id','lat','lon')

但我还想要此列表中 django 的 User 模型中的 username 字段。无论如何我可以做到这一点而不必执行另一个查询,如 User.objects.get(id=id).value_list('username') 然后加入两个列表。我经历了select_relatedprefetch_related但我不确定我是否可以在这里使用它们。

最佳答案

您可以使用双下划线符号在单个调用中获取相关字段。试试这个:

Points.objects.filter(user_id=id)
.values_list('user_id', 'lat', 'lon', 'user_id__username')

(尽管您应该将 user_id 重命名为 user。Django 将 _id 附加到您的外键字段,这意味着您现在有两个属性: user_id,将评估为 User 对象,以及 user_id_id,将评估为数字 id。)

关于python - 使用外键从另一个模型访问对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24748781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com