Pour moi, cette erreur s'est produite dans mon projet django à cause de ce qui suit :
-
J'ai inséré un nouveau lien hypertexte dans mon home.html présent dans le dossier templates de mon projet comme ci-dessous :
<input type="button" value="About" onclick="location.href='{% url 'about' %}'">
-
Dans views.py, j'avais les définitions suivantes de count et 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")
-
Dans urls.py, j'avais les modèles d'url suivants :
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"),
]
Comme on peut le voir dans le n°3 ci-dessus, dans le dernier motif url, j'appelais de manière incorrecte views.count alors que je devais appeler views.about. Cette ligne fulltext = request.GET['fulltext']
dans la fonction count (qui a été appelée par erreur en raison d'une entrée erronée dans urlpatterns) de views.py a déclenché l'exception multivaluedictkeyerror.
Ensuite, j'ai changé le dernier modèle d'url dans urls.py par le modèle correct, à savoir path('about/',views.about,name="about")
et tout a bien fonctionné.
Apparemment, en général, un programmeur débutant en django peut faire l'erreur que j'ai faite en appelant à tort une autre fonction de vue pour une url, qui pourrait attendre un ensemble différent de paramètres ou passer un ensemble différent d'objets dans son appel de rendu, plutôt que le comportement prévu.
J'espère que cela aidera les programmeurs débutants à découvrir django.
1 votes
Une bonne idée serait de nous montrer l'erreur complète et la trace. Montrez-nous également plus de la portion de code où l'erreur est soulevée.
1 votes
Quelqu'un peut-il expliquer pourquoi cette erreur se produit ? J'ai vu cette erreur lorsque j'utilise différents Modelviewset dans django rest......
1 votes
Cela signifie simplement que la clé 'is_private' n'existe pas !