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
Вернуться на верх