Не возвращается значение в django powered HTML

Искал решение почти 2 дня безрезультатно - любое руководство будет высоко оценено.

Данный 'views.py' выглядит следующим образом (все необходимые lib импортированы должным образом):

from django.shortcuts import render, get_object_or_404  
from django.http import HttpResponse, HttpResponseRedirect
from django.urls import reverse
from django.template.context_processors import request
from django.views import generic             
   
class HomeView(generic.TemplateView):   
    template_name = 'polls/djIndex.html'
    def test(request):
        data = {'temperature': '53F', 'state': 'NY', 'mood': ['good', 'bad']
        return render(request, 'polls/djIndex.html',{'data':data}) 

На djIndex.html:

не работает (не возвращается значение).

тест №1:

{% for key, value in data.items %}
    <h3>{{key}}-----: {{value}}</h3>
{% endfor %}

тест №2:

{% for key in data.items %}
   <p>Value of Key 1 : data["temperature"]</p>
{% endfor %}

тест №3

{% for key, value in data %}
    <p>Key {{ key }}, Value {{ value }}</p>
{% endfor %}

тест №4

<h2> context2: {{data.temperature}}</h2>

Но эти работают на djIndex.html:

<h2> Temperature: {{temperature}}</h2>
<h2> State: {{state}}</h2>
<h2> Mood: {{mood}}</h2>

Вопрос: Как заставить эти нерабочие тесты #1-#4 работать на моей HTML странице. Особенно тест #3 и #4. Делаю ли я что-то не так в конфигурации Django, так как некоторые из этих тестов #1-#4 являются принятыми ответами на некоторых форумах в разных инстанциях?

Чтобы передать некоторый контекст в шаблон из TemplateView, основанного на классе, вы можете переопределить его get_contecxt_data()

Попробуйте

class HomeView(generic.TemplateView):   
    template_name = 'polls/djIndex.html'

    def get_context_data(self, **kwargs):
        context = super(HomeView, self).get_context_data(**kwargs)
        context['temperature'] = '53F'
        context['state'] = 'NY'
        return context

Почему это не сработало раньше

У TemplatView или любого другого представления на основе класса нет метода test() для обработки запросов, поэтому ваш тестовый метод не будет вызван при запросе.

Вернуться на верх