【发布时间】:2010-12-07 13:43:45
【问题描述】:
我想在使用 django 时减少实际的数据库命中,所以我创建了这个人工示例来概述问题。模型如下所示:
class Car(models.Model):
name = models.CharField(max_length=10)
user = models.ForeignKey(User)
在我看来,我想做这样的事情:
def cartest(request):
cars = Car._default_manager.filter(user__username__exact='michael')[:5]
first_car_name = cars[0].name
another_car = cars[1]
return HttpResponse(len(connection.queries))
所以我想从数据库中选择 5 个条目,对第一个做一些事情,然后对第二个做一些事情(记住这是一个人为的例子)。必须有某种方法可以做到这一点,而不会两次访问数据库,对吧?
谢谢, 迈克
【问题讨论】:
-
啊,当我迭代“汽车”而不是尝试下标它时,似乎是在做我想做的事。