Следующая функция получает все категории и подкатегории, а затем передает их в шаблон. В основном, в топ-категории есть category id = 1
- поэтому мы получаем любые категории, которые имеют верхнюю категорию в качестве их родительской, и затем мы получаем их подкатегории. Проблема в том, что у нас есть ~ 90 запросов на основе этого кода. Мне интересно, может ли кто-нибудь предложить более эффективный способ предоставления этой информации и сокращения количества вызовов базы данных?Оптимизация запросов к базе данных в Django со статьями и подкатегориями
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))
Запросить для всех категорий, перебрать их и построить дерево категорий в коде. –
Не могли бы вы разместить какой-то код - я что-то пробовал, но это не сработало. – user1328021