-
Приветствую !
Давно столкнулся с проблемой большого количества запросов, которые появляются в основном из шаблонов.
К примеру есть простая модель Example, содержащая поля user = ForeignKey(User), text = Textfield()
Для шаблона делаю запрос Example.objects.all()[:10]
В шаблоне примерно так:{% for i in objects %} {{i.user}}<br /> {{i.text}} {% endfor %}
После выполнения запроса, я получаю 20 запросов(т.е. в 2 раза больше чем самих элементов) видаSELECT "auth_user"."id", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."password", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."is_superuser", "auth_user"."last_login", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."id" = %s
Как бы это упростить, и вообще, каким образом можно сократить количество запросов из шаблона ? -
{% for i in objects.select_related %} ?:)
-
можно еще во вьюхе выбрать все сразу, что-то вроде:
objects = list(objects.select_related())
будет 1 запрос (а в шаблоне запросов не будет совсем), только все 10 записей сразу в память загрузятся
-
Ок, спасибо, частично это уменьшило запросы.
А как быть с get_profile в шаблоне ?
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.


