Каков правильный способ использования метода get_context_data() в Django для добавления пар ключ-значение в контекст?
Как можно использовать метод get_context_data() в Django для добавления новых пар ключ-значение в контекст в файле views.py? Я следую инструкциям, и до сих пор все работало хорошо, однако на данный момент я не могу получить добавленные контекстные записи для заполнения html-шаблона. Вот что у меня получилось на данный момент, основываясь на инструкциях в руководстве:
views.py:
from django.shortcuts import render
from django.views.generic import TemplateView
# Create your views here.
def home_page_view(request):
context = {
"inventory_list": ["Widget 1", "Widget 2", "Widget 3"],
"greeting": "THanK yOu foR viSitiNG!",
}
return render(request, "home.html", context)
class AboutPageView(TemplateView):
template_name = "about.html"
def get_context_data(self, **kwargs): # new
context = super().get_context_data(**kwargs)
context["contact_address"] = "123 Jones Street"
context["phone_number"] = "01234 678910"
return context
about.html (шаблон):
<h1>Company About Page</h1>
<p>The company address is {{contact_address}}.</p>
<p>The company phone number is {{phone_number}}.</p>
urls.py:
from django.urls import path
from .views import home_page_view, AboutPageView
urlpatterns = [
path("about/", AboutPageView.as_view()),
path("", home_page_view)
]
Это приводит к выводу, который не переносит значения, связанные с contact_address и phone_number, на веб-сайт, когда я запускаю сервер разработки:
Что я делаю не так? Я несколько раз перепроверил пример кода и не вижу, чтобы я вводил какие-либо ошибки. Я также искал решения в Интернете, но многие ответы, похоже, относятся к сценариям, которые немного превосходят мое понимание на начальном уровне. Я работаю с Django всего неделю, поэтому готов признать, что, возможно, упускаю что-то совершенно элементарное.
Я запускаю Django 5.0.13 с Python 3.12.1 на Windows 11.
Заранее благодарю.
Теперь я решил эту проблему - проблема связана с тем, что метод get_context_data() не включен как часть класса About Page View. Проблема была связана с форматированием учебных материалов, из-за чего было трудно читать отступы.
Моды: учитывая природу ошибки, пожалуйста, дайте мне знать, заслуживает ли этот вопрос удаления, поскольку он имеет ограниченное значение для сообщества.
Вот правильная версия кода
class AboutPageView(TemplateView):
template_name = "about.html"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["contact_address"] = "123 Jones Street"
context["phone_number"] = "01234 678910"
return context