Как использовать {{ url '' }} в HTML с переменной для ссылки на url

Я работаю над проектом по созданию вики. У меня есть страница со списком записей, и я хотел бы, чтобы каждая из записей была кликабельной и перенаправляла на соответствующую страницу.

HTML

<ul>
    {% for entry in entries %}
        <li><a href="{% url 'entry' %}">{{ entry }}</a></li>
    {% endfor %}
</ul>

Проблема, с которой я столкнулся, заключается в том, что я не уверен, как поместить переменную внутрь моего {% %}, чтобы href указывал на правильную ссылку. Не уверен, что это поможет, но вот параметризация url:

urlpatterns = [
path("", views.index, name="index"), 
path("<str:entry>", views.markdown, name="entry"),
path("error", views.error, name="error")
]

Вы можете передать его как позиционный или именованный параметр, так с:

<li><a href="{% url 'entry' entry=entry %}">{{ entry }}</a></li>

Обратите внимание, что вы должны разместить error путь перед путем entry, иначе error будет восприниматься как запись с параметром entry 'error':

urlpatterns = [
    path('', views.index, name='index'),
    path('error/', views.error, name='error'),  # before entry
    path('<str:entry>/', views.markdown, name='entry')
]

Вы можете просто сделать это, поместив переменную после url следующим образом,

<ul>
    {% for entry in entries %}
        <li><a href="{% url 'entry' entry %}">{{ entry }}</a></li>
    {% endfor %}
</ul>
Вернуться на верх