Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 2, 2013 21:31:30

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

Количество запросов в ORM'e

Доброго времени суток! :)

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

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

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

А если я перменную “u” передам в шаблон и уже там обращусь к u.login и u.email тоже произойдет запрос на каждый аттрибут?



Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Отредактировано barabansheg (Июнь 2, 2013 21:32:00)

Офлайн

#2 Июнь 3, 2013 05:32:22

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Количество запросов в ORM'e

barabansheg
То на каждое присовение аттрибута произойдет запрос в бд
Нет, не произойдет. Я не знаю куда и чем ты смотришь, но запрос будет один.



Офлайн

#3 Июнь 3, 2013 09:00:38

magnet85
От:
Зарегистрирован: 2009-04-13
Сообщения: 91
Репутация: +  2  -
Профиль   Отправить e-mail  

Количество запросов в ORM'e

Должен быть 1 запрос, можно написать тест и посчитать количество запросов
https://docs.djangoproject.com/en/dev/topics/testing/overview/#django.test.TransactionTestCase.assertNumQueries



Офлайн

#4 Июнь 3, 2013 10:10:36

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

Количество запросов в ORM'e

Я делал так:
в 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 запроса. Дома после работы буду- еще гляну. Может чего и накосячил)



Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Офлайн

#5 Июнь 3, 2013 10:12:38

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Количество запросов в ORM'e

поставь дебаг-тулбар и не парься



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version