Django: reverse() не работает при передаче дополнительных опций в функцию просмотра

Я борюсь с раздражающей ошибкой в Django, я пытаюсь использовать reverse(), передавая метаданные как словарь Python (я следую документации, но это не работает, не могли бы вы помочь мне понять, что я упускаю? )

Это мой urlpattern (как вы видите, я передаю дополнительные параметры в функцию view, как описано в документации ):

from django.urls import path
from . import views

urlpatterns = [
    ...,
    path("items/<int:item_id>", views.item_page, { 'message': None }, name="item page")
]

В моей функции views.item_page у меня есть следующее: as

...

reversed_url = reverse("item page", kwargs={'item_id': item_id, 'message': 'hello'} )

return HttpResponseRedirect(reversed_url)

Я получаю такую ошибку:

Django Version:     4.0.4
Exception Type:     NoReverseMatch
Exception Value:    Reverse for 'item page' with keyword arguments '{'item_id': 2, 'message': 'hello'}' not found. 1 pattern(s) tried: ['items/(?P<item_id>[0-9]+)\\Z']

Как будто он не принимает аргумент "сообщение" при реверсировании.

обратный будет принимать только те аргументы, которые существуют в urlpattern в вашем шаблоне нет message **если вы хотите отправлять сообщения **. вы можете использовать модуль messages в django

from django.contrib import messages 

# in View
messages.success(request, 'Hello')
...

См. документацию по Отправке сообщений

Другой способ передать несколько структурированную дополнительную информацию следующему представлению - заполнить его request.GET Querydict. Что-то вроде

qd = QueryDict( mutable=True)
qd['whatever'] = 'whatever' # populate it as you wish next view's request.GET to be
...
url = reverse('myapp:wherever', kwargs={ ...} ) # kwargs as defined in urls.py
return HttpResponseRedirect( url + '?' + qd.urlencode() )
Вернуться на верх