Как передать строку в django url path через гиперссылку
Я создаю сайт на Django, который показывает карты Overwatch в стратегических целях. Я создал страницу, на которой отображаются все карты. Каждая карта обернута в гиперссылку, которая должна динамически отображать информацию об этой карте.
<div id="item">
<a href="{% url 'overwatch:maps/blizzard' %}">
<img
src="{% static 'pics/blizzard-world.jpg' %}"
alt="Blizzard World"
/>
</a>
</div>
Когда вы нажимаете на картинку карты, я хочу, чтобы url отправлял строку по пути url:
app_name = "overwatch"
path('maps/<str:mapName>', views.mapStrategies, name='maps/<str:mapName>'),
После этого представление должно быть отрисовано.
def mapStrategies(request, mapName):
return render(request, "overwatch/maps/mapStrategies.html", {
"mapName": mapName
})
Шаблон url не распознается при нажатии на карту. Однако я могу ввести url, и он работает нормально.
Вы не должны указывать url-параметры, т.е. <str:mapName>
в name
пути, поэтому он должен быть:
path('maps/<str:mapName>/', views.mapStrategies, name='maps_strategies'),
Затем в html отправьте любую строку для параметра mapName
, так:
<div id="item">
<a href="{% url 'overwatch:maps_strategies' 'some_map_name' %}">
<img
src="{% static 'pics/blizzard-world.jpg' %}"
alt="Blizzard World"
/>
</a>
</div>
Примечание: Всегда давайте
/
в конце каждого маршрута.