Как использовать {{ 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>