Как использовать несколько возвращаемых значений в HTML
Мне нужно использовать несколько возвращаемых значений из функции в HTML
Вот краткая версия кода. Все импорты корректны и если я возвращаю одно значение, то оно работает. Только не знаю, как вызвать оба значения в HTML.
Вид:
def get_title_and_text():
title = 'Some title'
text = 'Some text'
return title, text
def page():
return render(request, 'page.html', {'get_title_and_text': get_title_and_text()}
В HTML
<h3>{{ get_title_and_text.title }}</h3>
<h3>{{ get_title_and_text.text }}</h3>
Наверное, это простое решение, но я просто не смог найти информацию по этому вопросу
Есть два варианта: работа с подсловарем или работа с индексами:
Вариант 1: подсловари
def get_title_and_text():
title = 'Some title'
text = 'Some text'
return {'title': title, 'text': text }
Вариант 2: построить контекст в функции
Другой вариант - построить весь контекст в функции, в этом случае мы работаем с:
def get_title_and_text():
title = 'Some title'
text = 'Some text'
return {'title': title, 'text': text }
и вызовите функцию с помощью:
def page():
return render(request, 'page.html', get_title_and_text()}
В этом случае вы можете отобразить страницу с помощью:
<h3>{{ title }}</h3>
<h3>{{ text }}</h3>
Вариант 3: работа с индексами
По сути, вы связываете 2-кортеж с переменной get_title_and_text
. Таким образом, вы можете получить доступ к ней с помощью:
<h3>{{ get_title_and_text.0 }}</h3>
<h3>{{ get_title_and_text.1 }}</h3>
Вид:
def get_title_and_text():
title = 'Some title'
text = 'Some text'
context = {
'title' : title,
'text' : text
return context
def page():
return render(request, 'page.html', context)
в html
<h3>{{ title }}</h3>
<h3>{{ text }}</h3>