Как передать строку в 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>

Примечание: Всегда давайте / в конце каждого маршрута.

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