Je développe une application django dans laquelle j'essaye d'envoyer une valeur de la variable au backend en cliquant sur un bouton via javascript.
code javascript:
NoReverseMatch at /v2/search/SARS_CoV_2/GID1716 Reverse for 'newinteractors_intnet' with arguments '('GID1716', '')' not found. 1 pattern(s) tried: ['v2/dataJson/newinteractors_intnet/(?P<geneId>[^/]+)/(?P<IUPredscorethreshold>[^/]+)$'] Exception Value: Reverse for 'newinteractors_intnet' with arguments '('GID1716', '')' not found. 1 pattern(s) tried: ['v2/dataJson/newinteractors_intnet/(?P<geneId>[^/]+)/(?P<IUPredscorethreshold>[^/]+)$']
urls.py
@csrf_exempt def newinteractors_intnet(request, geneId, IUPredscorethreshold): print("IUPredscorethreshold:" + IUPredscorethreshold) . . . . . some computation graphData = {"nodes": uniquenodesdata, "links": linksdata} response = JsonResponse(graphData) return response
views.py
path( "dataJson/newinteractors_intnet/<str:geneId>/<str:IUPredscorethreshold>", views.newinteractors_intnet, name="newinteractors_intnet", ),
lorsque j'exécute ce code, j'obtiens l'erreur suivante:
$(document).on("click", "#filter", function (e) { IUPredscorethreshold = 0.4 $("#ksNetwork").empty(); ksInteractionNetwork('{% url "camkinetv2:newinteractors_intnet" tab1.caMKipedia_Id IUPredscorethreshold %}'); });
qu'est-ce que je fais de mal? comment puis-je résoudre ce problème. Je suis encore au stade d'apprentissage de django et je ne suis pas en mesure de résoudre cette erreur.
3 Réponses :
Un message d'erreur vous indique que je n'ai pas pu trouver une URL qui correspond à {% url "camkinetv2: newinteractors_intnet" tab1.caMKipedia_Id IUPredscorethreshold%}
. Dans votre urls.py, vous déclarez que IUPredscorethreshold
est une chaîne en mettant str:
devant elle. Dans votre javascript, vous attribuez 0.4 à cette var qui est un entier. Par conséquent, l'URL que vous ne résolvez pas.
Remplacez votre chemin dans urls.py par:
chemin ("dataJson / newinteractors_intnet /
J'avais apporté des modifications au fichier urls.py mais j'obtenais toujours l'erreur: Reverse for 'newinteractors_intnet' with arguments '(' GID1716 ',' ')' not found. 1 motif (s) essayé (s): ['v2 / dataJson / newinteractors_intnet / (? P
de plus, ce que j'ai observé, c'est que si je change ma ligne javascript de ksInteractionNetwork ('{% url "camkinetv2: newinteractors_intnet" tab1.caMKipedia_Id IUPredscorethreshold%}');
à ksInteractionNetwork ('{% url "camkinetv2: newinteractors_intnet" tab1.caMKipedia_Id "IUPredscorethreshold"%} ')
ie mettre IUPredscorethreshold dans "IUPredscorethreshold"
je n'obtiens aucune erreur mais dans mon views.py quand je l'imprime Je l'obtiens variable et non la valeur IUPredscorethreshold: IUPredscorethreshold
Remplacez votre code Javascript par:
$(document).on("click", "#filter", function (e) { IUPredscorethreshold = 0.4 $("#ksNetwork").empty(); let url = '{% url "camkinetv2:newinteractors_intnet" ' + tab1.caMKipedia_Id + ' ' + IUPredscorethreshold + '%}' ksInteractionNetwork(url); });
Je pense que l'URL ne se forme pas correctement
J'avais changé le javascript mais j'obtiens toujours une erreur: `Inverse pour 'newinteractors_intnet' with arguments '(' + tab1.caMKipedia_Id + ',' + IUPredscorethreshold + ')' non trouvé. 1 motif (s) essayé (s): ['v2 / dataJson / newinteractors_intnet / (? P
modification de la ligne javascript de: ksInteractionNetwork ('{% url "camkinetv2: newinteractors_intnet" tab1.caMKipedia_Id IUPredscorethreshold%}');
à ksInteractionNetwork ('{% url "camkinetv2net: newinteractors_int" tab1.caMKipedia_Id "IUPredscorethreshold"%} '. replace (/ IUPredscorethreshold /, IUPredscorethresholdvalues));
La réponse suivante a aidé à répondre