Влияет ли использование наборов запросов django в шаблонах на базу данных?
Вызывают ли теги значений шаблона django для попадания в базу данных при вызове неконтекстного значения?
Например:
{{ request.user.username }}
Это вызов, чтобы показать имя пользователя, вошедшего в систему. Тем не менее, что-то вроде {{ request.user.someobject_set.all }}
сбросит пройденный запрос FK в шаблон.
Ли пользователь someobject
set get dumped to context по умолчанию, или мне нужно сделать контекстную запись с набором запросов в def get_context_data
с моей точки зрения? И, как следствие, любой другой объект без запроса, который может быть найден ассоциацией?
Приведенный ниже документ показывает, когда наборы запросов оцениваются в сыром Python, но на самом деле не упоминаются шаблоны и представления и их взаимосвязь.
1 ответ
Оценивать вещи в шаблоне точно так же, как оценивать их где-либо еще. Когда шаблон будет отображен, переменные будут разрешены, и если для объекта, на который делается ссылка, требуется поиск в базе данных, то этот объект будет выполняться одним объектом. Но этот шаблон не делает ничего умного, он просто говорит request.user
принести его someobject_set
атрибут, а затем вызов all
на нем, что точно так же, как это происходит в коде Python.