对我来说,这个错误发生在我的 django 项目中,原因如下:
-
我在我的项目模板文件夹中的 home.html 中插入了一个新的超链接,如下所示:
<input type="button" value="About" onclick="location.href='{% url 'about' %}'">
-
在views.py中,我对count和about有以下定义:
def count(request):
fulltext = request.GET['fulltext']
wordlist = fulltext.split()
worddict = {}
for word in wordlist:
if word in worddict:
worddict[word] += 1
else:
worddict[word] = 1
worddict = sorted(worddict.items(), key = operator.itemgetter(1),reverse=True)
return render(request,'count.html', 'fulltext':fulltext,'count':len(wordlist),'worddict'::worddict})
def about(request):
return render(request,"about.html")
- 在 urls.py 中,我有以下 url 模式:
urlpatterns = [
path('admin/', admin.site.urls),
path('',views.homepage,name="home"),
path('eggs',views.eggs),
path('count/',views.count,name="count"),
path('about/',views.count,name="about"),
]
正如可以在没有看到。上面的 3 中,在最后一个 url 模式中,我错误地调用了 views.count,而我需要调用 views.about。
views.py的count函数中fulltext = request.GET['fulltext']这一行(由于urlpatterns输入错误而被错误调用)抛出了multivaluedictkeyerror异常。
然后我将 urls.py 中的最后一个 url 模式更改为正确的模式,即path('about/',views.about,name="about"),一切正常。
显然,一般来说,django 的新手程序员可能会犯我所犯的错误,即错误地为 url 调用另一个视图函数,这可能期望不同的参数集或在其渲染调用中传递不同的对象集,而不是预期的行为。
希望这有助于一些新手程序员使用 django。