Для меня эта ошибка произошла в моем проекте 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. Эта линияfulltext = request.GET['fulltext']
в функции count (которая была вызвана по ошибке из-за неправильной записи в urlpatterns) для views.py вызвала исключение multivaluedictkeyerror.
Затем я изменил последний шаблон URL в urls.py на правильный, т.е. path('about/',views.about,name="about")
И все работало нормально.
По-видимому, в общем, программист-новичок в django может совершить ошибку, которую я допустил, ошибочно вызвав другую функцию представления для URL-адреса, которая может ожидать другой набор параметров или передачу другого набора объектов при вызове рендеринга, а не предполагаемое поведение.
Надеюсь, это поможет начинающему программисту в Django.