Найти - Пользователи
Полная версия: Количество запросов в ORM'e
Начало » Django » Количество запросов в ORM'e
1
barabansheg
Доброго времени суток! :)

Обратил внимание на одну вещь:

Если выбрать из таблицы что-то, например, u = User.objects.get(id = 1), а затем в views.py прописать что-то вроде:
a = u.login
b = u.email

То на каждое присовение аттрибута произойдет запрос в бд(смотрю через django.db.connection.queries )

А если я перменную “u” передам в шаблон и уже там обращусь к u.login и u.email тоже произойдет запрос на каждый аттрибут?
FishHook
barabansheg
То на каждое присовение аттрибута произойдет запрос в бд
Нет, не произойдет. Я не знаю куда и чем ты смотришь, но запрос будет один.
magnet85
Должен быть 1 запрос, можно написать тест и посчитать количество запросов
https://docs.djangoproject.com/en/dev/topics/testing/overview/#django.test.TransactionTestCase.assertNumQueries
barabansheg
Я делал так:
в views.py
from django.db import connection
u = User.objects.get(id = 1)
a = u.login
b = u.email
queries = connection.queries
queries передавал в шаблон и вычислял его длинну( {{ queries|length }} получал 3 запроса. Убирал a = u.login получал 2 запроса. Дома после работы буду- еще гляну. Может чего и накосячил)
FishHook
поставь дебаг-тулбар и не парься
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB