Starck43
@Starck43
Full-stack разработчик (Python, React)

Один queryset в разных шаблонах Django?

Я сейчас в меню навигации использую одинаковый queryset для отображения в разных шаблонах, переданный через переменную контекста.
def index(request):
	context = {
		'exhibitions_list' : Exhibitions.objects.all()
	}
	return render(request, 'index.html', context)


Представления разные, а context[''exhibitions_list''] нужен везде.

Подскажите, можно ли обойтись без формирования одних и тех же запросов для шаблонов с общей частью? Может как-то рендерить отдельно общую часть ?
  • Вопрос задан
  • 83 просмотра
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Вам нужен context processor.
Ответ написан
@mrxor
Simple is better than complex
Если представления разные - вам в любом случае на каждый запрос нужно будет сходить в базу и забрать кверисет. Вы можете зарефакторить это на уровне кода, вынести в миксин, например, но по производительности останется также.
Потому что чтобы отдать данные в шаблон - вам надо сначала получить их из базы (это в общем случае, не считая кеширования и прочего)

Решить вашу задачу может переход на апи + фронт на JS. Тогда можно забрать один раз данные из апихи и переиспользовать на фронте сколько нужно, пока не потребуется обновление. Возможно для вашей задачи вам хватит одно апихи, отдающей json и простого на фронте.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы