Django: Есть ли способ указать django url путь для шаблона элемента, который в настоящее время итерируется в forloop
У меня есть простой неупорядоченный список записей, которые были итерированы в Django forloop следующим образом.
<ul>
{% for entry in entries %}
<li>{{ entry }}</li>
{% endfor %}
</ul>
Однако я хотел сделать так, чтобы все перечисленные элементы в forloop были ссылками на шаблонный html-файл. В связи с этим возникает вопрос, есть ли способ отформатировать мой код так, чтобы URL-путь мог взять имя элемента и связать его с нужным шаблоном для него? Что-то вроде этого.
<ul>
{% for entry in entries %}
<li><a href="{% url 'encyclopedia/{{ entry }}' %}">{{ entry }}</a></li>
{% endfor %}
</ul>
Очевидно, что этот код не работает, но есть ли что-то похожее, что я могу сделать?
Вот мои urls.py и views.py для дополнительной информации.
urls.py
path("<str:TITLE>", views.TITLE, name="TITLE")
views.py
def TITLE(request, TITLE):
# util.markdownify(f"{TITLE}.html", f"{TITLE}.md")
return render(request, f"encyclopedia/{TITLE}.html")
Я пытаюсь дать вам ответ, я не знаю ваших моделей, поэтому вам придется адаптировать код, вероятно. urls.py
path("<str:title>", views.title, name="title") #I suggest to use lowercase letters
шаблон
<ul>
{% for entry in entries %}
<li><a href="{% url 'encyclopedia' title=entry.title %}">{{ entry.title }}</a></li>
{% endfor %}
</ul>
Теперь вы можете создать шаблон энциклопедии с видом заголовка
views.py
def title(request, title):
entry = YourModel.objects.get(title=title)
return render(request, encyclopedia.html", {'entry ': entry })
И ваш файл encyclopedia.html может быть примерно таким: encyclopedia.html
{{entry.title}} //or whatever you need in your template