Объект, созданный в представлении, не отображается в шаблоне
Я создаю новый объект в представлении через внешнюю функцию. Вот код:
def index(request):
sousei = suii_scratch(SOUSEI_URL)
s_jikan = sousei[0]
s_suii = sousei[1]
sousei_obj = Sousei.objects.create(jikan=s_jikan, suii=s_suii)
#print(sousei_obj)
context = {
sousei_obj : 'sousei',
}
return render(request, 'index.html', context)
Внешняя функция возвращает два значения, которые попадают в переменные s_jikan
и s_suii
. Эти переменные затем используются для создания нового объекта (модель имеет только эти два поля).
Если я раскомментирую оператор print, то у меня выводится метод __str__
модели с новыми данными, полученными из внешней функции. Также, если я проверю администратора, новая запись в базе данных сохраняется правильно. До этого момента вроде бы все работает нормально, но при передаче созданного объекта в шаблон я не могу добиться его рендеринга. Вот код шаблона:
{% if sousei %}
<p>{{sousei.jikan}}</p>
<p>{{sousei.suii}}</p>
{% else %}
<p>No data.</p>
{% endif %}
Но я продолжаю получать сообщение об отсутствии данных. Что я упускаю?
В словаре ключ идет перед значением, вы использовали созданный объект в качестве ключа и строку в качестве значения в вашем контексте
def index(request):
...
context = {
'sousei': sousei_obj
}
return render(request, 'index.html', context)