gpt4 book ai didi

python - Django 方法返回

转载 作者:太空宇宙 更新时间:2023-11-04 10:40:48 26 4
gpt4 key购买 nike

有了获取所有相关连接的方法,是简单地返回一个查询集好,还是遍历查询集返回一个 ID 列表好?

示例代码:

class Foo(models.Model):
bar = models.ForeignKey(Bar, related_name="foos")

class Bar(models.Model):
is_active = models.BooleanField(default=True)

def get_foos(self):
#this is the method to focus on for the question

要返回查询集,get_foos 中需要的所有内容如下:

return self.foos.all()

但要获取 ID 列表,它必须如下所示:

foos = self.foos.all()
ids = []
for foo in foos:
ids.append(foo.pk)
return ids

我正在查看一个 API,他们使用的是后者,但我真的不明白,如果您可以像前者一样只做一个单行代码,为什么您会真正这样做! 谁能解释一下这些方法的好处,以及在特定情况下是否有一种方法优于另一种方法?

最佳答案

您可以在一行中获取 Foo id:

ids = self.foos.values_list('pk', flat=True)

如果用在其他表达式中,使用 id list 会更有效,例如:

my_query.filter(foo__pk__in=ids)

关于python - Django 方法返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20690837/

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