【发布时间】:2013-08-15 12:09:23
【问题描述】:
以下函数获取所有类别和子类别,然后将它们传递给模板。基本上,顶级类别有category id = 1——所以我们得到任何以顶级类别作为父类别的类别,然后我们得到它们的子类别。问题是我们有大约 90 个基于此代码的查询。我想知道是否有人可以建议一种更有效的方式来呈现这些信息并减少数据库调用的次数?
def all_models(request):
topcats = Category.objects.filter(parent=1).order_by('category')
subcats = {}
for each in topcats:
subcats [each] = []
subcategories = Category.objects.filter (parent= each.id).order_by('category')
for subcat in subcategories:
subcats[each].append(subcat)
return render_to_response("parts/all.html", {
"topcats":topcats,
"subcats": subcats,
}, context_instance=RequestContext(request))
【问题讨论】:
-
查询所有类别,遍历它们并在代码中构建类别树。
-
你能贴一些代码吗——我试过了,但没用。
标签: python django optimization query-optimization