Как передать словарь в шаблон в Django?
Я смотрю учебник по Django (Corey Schafer) о том, как создать веб-приложение, однако мне пришлось использовать другой метод, чтобы заставить шаблон появиться. Все работает хорошо. Функция, которую он использует, имеет аргумент, которого у меня нет, что позволяет словарю появляться на сайте. Есть идеи, как это исправить? (Извините, если это вопрос новичка, я очень новичок)
from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader
def home(request):
context = {
'news': news
}
template = loader.get_template('home.html')
return HttpResponse(template.render())
Я попытался передать его вместе с template.render(), и это привело к тому, что на экране появился весь необработанный HTML-код.
При использовании django.shortcuts.render
(в отличие от template.render
) не следует использовать HttpResponse
напрямую.
Вместо этого передайте объект request
, путь/имя шаблона, диктуемый контекст и статус HTTP.
from django.shortcuts import render
def home(request):
context = {
'news': news
}
return render(request, 'home.html', context=context, status=200)
HttpResponse
понятия не имеет, что такое диктант context
и как его применить к шаблону, его единственная задача - принять строку и вернуть ее клиенту.