【发布时间】:2020-12-02 02:07:54
【问题描述】:
我必须添加指向页面主体中列出的列表项的链接,以将用户重定向到列表项所代表的页面。列表项是从 views.py 中的一个函数获取的,该函数从另一个名为 util.py 的文件中获取列表项。但是,我不明白如何在迭代列表项时添加这些超链接,即我写为<a href = "{% url '....' %}"> 的部分。
这是 index.html 的代码,该页面将显示列表项和超链接:
{% extends "encyclopedia/layout.html" %}
{% block title %}
Encyclopedia
{% endblock %}
{% block body %}
<h1>All Pages</h1>
<ul>
{% for entry in entries %}
<li><a href = "{% url '....' %}">{{ entry }}</a></li>
{% endfor %}
</ul>
{% endblock %}
这是从 util.py 中获取列表并将其存储在名为 entries 的列表中的函数:
from django.shortcuts import render
from . import util
def index(request):
return render(request, "encyclopedia/index.html", {
"entries": util.list_entries()
})
这是 util.py 中的原始函数,它将列表返回到 views.py 中的 index 函数。
def list_entries():
"""
Returns a list of all names of encyclopedia entries.
"""
_, filenames = default_storage.listdir("entries")
return list(sorted(re.sub(r"\.md$", "", filename)
for filename in filenames if filename.endswith(".md")))
这是 urls.py 文件:
from django.urls import path
from . import views
app_name = "wiki"
urlpatterns = [
path("", views.index, name="index"),
path("<str:TITLE>", views.entry_page, name="entry_page")
]
【问题讨论】: