问题描述
我正在创建一个百科全书库项目。主页上是条目列表,我希望所有条目都链接到其条目页面。
当前,当我单击主页上某个条目的链接时,在这种情况下,该条目称为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
解决方法
使用entry
作为entry
函数。做:
def entry(request,entry):
return render(request,entry,"encyclopedia/index.html",{
"entry": util.get_entry({"entry"})
})