我正在创建一个百科全书库项目。主页上是条目列表,我希望所有条目都链接到其条目页面。
当前,当我单击主页上某个条目的链接时,在这种情况下,该条目称为CSS,这是我得到的错误:
/ wiki / CSS /中的TypeError entry()获得了意外的关键字参数“ entry” 请求方法:GET 请求网址:http://127.0.0.1:8000/wiki/CSS/
views.py
def css(request):
return render(request, "entries/css.html", {
"css_entry": util.get_entry("css")
})
def entry(request):
return render(request, entry, "encyclopedia/index.html", {
"entry": util.get_entry({"entry"})
})
urls.py
urlpatterns = [
path("", views.index, name="index"),
path("css/", views.css, name="css"),
path("<str:entry>/", views.entry, name="entry")
]
index.html
<ul>
{% for entry in entries %}
<li><a href = "{% url 'entry' entry %}">{{ entry }}</a></li>
{% endfor %}
</ul>
令人沮丧的是,如果我进入浏览器:http://127.0.0.1:8000/wiki/CSS/可以正常工作,并且页面可以正常加载,但是当我单击主页上的链接时却无法正常工作。另外,如果我删除条目参数,将其保留为{%url'entry'%},则主页停止工作,并且出现以下错误:
/ wiki /上的NoReverseMatch 找不到“ CSS”的反向符号。 “ CSS”不是有效的视图函数或模式名称。 请求方法:GET 要求网址:http://127.0.0.1:8000/wiki/ Django版本:3.1.1 异常类型:NoReverseMatch
答案 0 :(得分:1)
使用entry
作为entry
函数。做:
def entry(request, entry):
return render(request, entry, "encyclopedia/index.html", {
"entry": util.get_entry({"entry"})
})