如果Django没有使用“懒惰查询执行”原则,那么主要问题是什么?
q = Entry.objects.filter(headline__startswith="What")
q = q.filter(pub_date__lte=datetime.date.today())
q = q.exclude(body_text__icontains="food")
print(q)
当print(q)执行时它会命中数据库。
答案 0 :(得分:2)
可能会出现几个问题,
如果django按q = Entry.objects.filter(headline__startswith="What")
命中,则必须将QueryDict存储到q中。由于这个简单的原因,它会出现数据类型,内存,时间复杂度等问题。(
之后你就不会得到那个很棒的功能q.filter(.....)
。因为当时已经有价值所以,它不是一个可能的架构。但现在它存储了对象,变量就像一个对象。