Django url kwargs в шаблонах

Ранее мы обращались к kwargs в шаблонах Django с помощью {{view.kwargs.kwarh_name}}.

Однако, к моему удивлению, это не работает в моем django 3.2.4+. Была ли она удалена, есть ли проблемы со строкой выше?

Примечание: под карликами здесь подразумевается что-то вроде следующего: Дана функция следующего вида:

def GetSomething(request, code):
   return render(request, "some template here")

Теперь url-шаблоны будут выглядеть примерно так,

import GetSomething from .views

app_name = "some_app_name_here"
urlpattern = [
   path("link/<int:code>/", GetSomething, name="some_cool_name") #http:localhost/link/12345/
]

Теперь в шаблонах HTML/Django или Jinja2 (в зависимости от того, что вы используете), доступ к этому коду будет осуществляться через {{ view.kwargs.code }}

Но так получилось, что это не работает для меня в Django 3.2, какие-нибудь причины???

Надеюсь, я выразился очень ясно!

Метод get_context_data представлений, основанных на классах, добавляет представление в контекст как представление. Если у вас есть представление, основанное на функции, оно не будет добавлено в контекст автоматически. Это не относится к Django версий 3.2.4+

Так что либо используйте представление на основе классов, либо используйте представление на основе функций и передавайте kwargs шаблону через контекстную переменную.

def GetSomething(request, code):
   context = {
       #some values here
       'code':code,
   }
   return render(request, "some template here", context)

Тогда вы сможете обращаться к своим контекстным переменным в шаблоне напрямую.

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