Как правильно перенаправить на новый шаблон, используя uuid в качестве url slug в представлении
У меня есть следующий исходный шаблон, который отображает uuid модели Pollers
как скрытый тег <a>
для перенаправления пользователя на этот элемент, отображаемый в новом шаблоне при нажатии пользователем.
<div class="poller-wrapper">
<a class="hidden_poller_id" href="/poller/{{ poller.poller_id }}">
<div class="poller-text">{{ poller.poller_text }}</div>
[...]
Сопоставление url выглядит следующим образом:
urlpatterns = [
# Main overview of recent pollers
path('pollboard/', pollboard, name='pollboard'),
# Redirect url to single Poller
path('poller/<uuid:poller_id>', single_poller, name='single_poller'),
]
View
def single_poller(request):
return render(request, 'pollboard/single_poller.html')
Прямо сейчас я получаю следующую ошибку, и я не уверен, почему она не перенаправляется должным образом:
TypeError at /poller/d251ce80-1d0d-41c4-a096-c12bdd2399f8 single_poller() получил неожиданный аргумент ключевого слова 'poller_id'
Ваше представление должно принимать значение для параметра URL poller_id
, так:
# ↓ value matched by <uuid:poller_id>
def single_poller(request, poller_id):
return render(request, 'pollboard/single_poller.html')
Вы можете использовать это, например, для получения связанного объекта Poller
и передачи элементов в качестве контекста в вызов render(…)
.