gpt4 book ai didi

Django:相当于 "select [column name] from [tablename]"

转载 作者:行者123 更新时间:2023-11-28 19:34:41 24 4
gpt4 key购买 nike

我想知道有没有等同于:

select columnname from tablename

就像 Django 教程说的那样:

Entry.objects.filter(condition)

获取所有符合给定条件的对象。就像:

select * from Entry where condition

但我只想列出一列 [在我的例子中是外键]。发现:

Entry.objects.values_list('column_name', flat=True).filter(condition)

做同样的事情。但在我的例子中,该列是一个外键,这个查询失去了外键的属性。它只是存储值。我无法调用查询电话。

最佳答案

当然,valuesvalues_list 将从数据库中检索原始值。 Django 无法在模型上发挥其“魔力”,这意味着您无法遍历关系,因为您被外键指向的 id 而不是 ForeignKey 字段所困。

如果您需要过滤这些值,您可以执行以下操作(假设 column_name 是指向 MyModel 的 ForeignKey):

ids = Entry.objects.values_list('column_name', flat=True).filter(...)
my_models = MyModel.objects.filter(pk__in=set(ids))

这是 values_list() 的文档

关于Django:相当于 "select [column name] from [tablename]",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9726691/

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