Explication sur l'erreur NoReverseMatch dans "python django super introduction"

Préface

En faisant le texte "python django super introduction" (système Hidewa), j'ai entré le texte exactement et une erreur s'est produite. Comme il n'était pas répertorié dans le tableau correct / incorrect fourni par l'éditeur, je l'ai publié à des fins d'étude. Dans le texte, je crée une application Hello.

Environnement d'exécution

django:3.0.2 python:3.7.4 OS:macOS Mojave 10.14.6

contenu de l'erreur

Cela s'est produit lorsque je faisais la P.82 (Déplacer plusieurs pages) à la page 2-2.

index.html


<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <title>{{ title }}</title>
</head>
<body>
    <h1>{{ title }}</h1>
    <p>{{ msg }}</p>
    <p><a href="{% url goto %}">{{ goto }}</a></p>
</body>
</html>

views.py


#Avant correction
# index()Seul extrait
def index(request):
    params = {
        'title': 'Hello/index',
        'msg': 'Ceci est une page d'exemple.',
        'goto': 'next',
    }
    return render(request, 'hello/index.html', params)

Lors de l'accès à index.html dans cet état, l'erreur suivante s'est produite.

NoReverseMatch at /hello/
Reverse for 'next' not found. 'next' is not a valid view function or pattern name.

Quelle est la prochaine"? ?? Est en colère. .. ..

C'est drôle, peu importe le nombre de fois que je le révise, c'est comme le dit le texte. .. ..

Cause, solution

De la conclusion, cela était dû à la façon dont «go» était écrit dans views.py. Après l'avoir modifié comme suit, c'est devenu normal.

views.py


#5ème ligne
#Changer avant:
'goto': 'next',

#Après le changement:
'goto': 'hello:next',

Écran de résultat de l'exécution: 実行結果画面

L'affichage de la partie lien est différent du texte, mais ce n'est pas l'essentiel, je n'y toucherai donc pas ici. (Seul "suivant" est censé être affiché dans le texte) La cause était que la partie modèle {% url goto%} dans index.html n’était pas envoyée dans le bon format. Le format de la partie goto devrait être «nom de l'application: nom», mais il y avait une incohérence car seul le nom venait.

Épilogue

Ce qui précède n'est pas décrit dans le tableau d'exactitude de la page de support de l'éditeur, et j'ai pensé que certaines personnes trébucheraient sur la même partie, alors je Je l'ai posté dans le but d'étudier. J'étudie toujours le django, donc si vous avez des questions, s'il vous plaît m (_ _) m

Recommended Posts

Explication sur l'erreur NoReverseMatch dans "python django super introduction"
Théorie générale de la relativité en Python: Introduction
Introduction de Python
[Introduction à Python] Une explication approfondie des types de chaînes de caractères utilisés dans Python!
Explication de la distance d'édition et de l'implémentation en Python
Faire fonctionner mongoDB à partir de python dans l'environnement ubuntu ① Introduction de mongoDB
Jugement d'équivalence d'objet en Python
Introduction d'activités appliquant Python
Modèles de conception en Python: introduction
Implémentation du tri rapide en Python
[Pour les débutants] Résumé de l'entrée standard en Python (avec explication)
Manipulation des pixels d'image en Python
8 commandes fréquemment utilisées dans Python Django
[Python] PCA scratch dans l'exemple de "Introduction à la méthode d'analyse multivariée"
Implémentation de la fonction de connexion dans Django
Diviser timedelta dans la série Python 2.7
Gestion des fichiers JSON en Python
Implémentation du jeu de vie en Python
Affichage de la forme d'onde audio en Python
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (5) [Introduction au fonctionnement de la base de données avec le shell Django]
Introduction du package de dessin python pygal
La loi des nombres en python
Implémentation du tri original en Python
Brouillage réversible d'entiers en Python
[Introduction] Insérer des sauts de ligne dans Python 3
Enregistrement de l'introduction de Python pour les nouveaux arrivants
Introduction à Python Django (2) Édition Mac
Django super introduction par les débutants Python! Partie 2 J'ai essayé d'utiliser les fonctions pratiques du modèle
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (4) [Route setting / Introduction to MTV design patterns]
Is_alive () donne une erreur au lieu de False après le traitement des threads en Python3
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (2) [Création de projet]
[Django] Erreur de version de sqlite lors de l'exécution de python manage.py dans l'environnement aws cloud9
Explication facile à comprendre de l'application Web Python (Django) même pour les débutants (1) [Construction de l'environnement]
Conversion de la chaîne <-> date (date, datetime) en Python
[Introduction à Python] Comment utiliser la classe en Python?
Vérifiez le comportement du destroyer en Python
L'histoire d'une erreur dans PyOCR
Pratique d'utilisation de ceci en Python (mauvais)
Arborescence de sortie des fichiers en Python
Afficher une liste d'alphabets en Python 3
Super Introduction Arithmétique Bit Python
Comparaison des modules de conversion japonais en Python3
Erreur [Python d'instruction matérielle illégale] dans PyMC3
Introduction facile de la reconnaissance vocale avec Python
Le résultat de l'installation de python sur Anaconda
Modèles Gang of Four (GoF) en Python
Principes de base pour exécuter NoxPlayer en Python
Remplacement en bloc des chaînes dans les tableaux Python
Projet Euler # 16 "Somme des pouvoirs" en Python
Résumé des méthodes intégrées, etc. de la liste Python
Utilisation d'opérateurs non logiques de ou en python
Introduction facile de la série python3 et d'OpenCV3
Exemple pratique d'architecture hexagonale en Python
Projet Euler # 17 "Nombre de caractères" en Python
Equation de mouvement à double pendule en python
Introduction aux vecteurs: Algèbre linéaire en Python <1>
Débarrassez-vous des images DICOM en Python