Влияет ли использование наборов запросов django в шаблонах на базу данных?

Вызывают ли теги значений шаблона django для попадания в базу данных при вызове неконтекстного значения?

Например:

{{ request.user.username }} Это вызов, чтобы показать имя пользователя, вошедшего в систему. Тем не менее, что-то вроде {{ request.user.someobject_set.all }} сбросит пройденный запрос FK в шаблон.

Ли пользователь someobject set get dumped to context по умолчанию, или мне нужно сделать контекстную запись с набором запросов в def get_context_data с моей точки зрения? И, как следствие, любой другой объект без запроса, который может быть найден ассоциацией?

Приведенный ниже документ показывает, когда наборы запросов оцениваются в сыром Python, но на самом деле не упоминаются шаблоны и представления и их взаимосвязь.


https://docs.djangoproject.com/en/1.6/ref/models/querysets/

1 ответ

Решение

Оценивать вещи в шаблоне точно так же, как оценивать их где-либо еще. Когда шаблон будет отображен, переменные будут разрешены, и если для объекта, на который делается ссылка, требуется поиск в базе данных, то этот объект будет выполняться одним объектом. Но этот шаблон не делает ничего умного, он просто говорит request.user принести его someobject_set атрибут, а затем вызов all на нем, что точно так же, как это происходит в коде Python.

Другие вопросы по тегам