我有值查询集,如果我从中获取一些日期,这会执行对数据库的调用吗?
instances_values = Model.objects.filter(**kwargs).values(*args)
instance_with_id_one = instances_values.get(id=1) # does this perform a call to the databse?
是的,.get(..)
是渴望的。它执行查询。您的instance_with_id_one
在这里是一个字典,其中包含您的values(..)
调用中列出的值。
您可以使用.filter(..)
来推迟呼叫。然后,它只会在您使用查询集时进行调用(例如,通过迭代它(。但因此,它是记录的集合(在这种情况下最多一个(记录。