質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2296閲覧

NoReverseMatch at /hello/とエラーがでてしまう。

sorara

総合スコア17

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/04/20 12:07

編集2020/04/23 12:39

Python Django超入門という本をみながら勉強を進めています。
その中で、フォームを作成しておりました。ですが、うまくいかず、件名のとおり、NoReverseMatch at /hello/とエラーがでてしまいます。
index.htmlはきちんと入力されていると思うのですが、、、
プロジェクト名はdjango_appで、アプリ名はhelloです。

⚫️エラー画面は下記の通りです。
イメージ説明

index.htmlは下記の通りです↓

{% load static %} <!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> <title>{{title}}</title> <link rel="stylesheet" type="text/css" href="{% static 'hello/css/style.css' %}" /> </head> <body> <h1>{{title}}</h1> <p>{{msg}}</p> <form action="{% url 'form' %}" method="post"> {% csrf_token %} <label for="msg">message:</label> <input id="msg" type="text" name="msg"> <input type="submit" value="click"> </form> </body> </html>

hello/urls.pyは下記の通りです↓

"""django_app URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/3.0/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.urls import path from . import views urlpatterns = [ path('',views.index,name='index'), path('next',views.next,name='next'), ]

django_app/urls.pyです↓

"""django_app URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/3.0/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin from django.urls import path,include urlpatterns = [ path('admin/', admin.site.urls), path('hello/',include('hello.urls')), ]

いつも変なエラーばかり質問して本当にすみません。
どなたか教えていただければ幸いです。
宜しくお願いいたします。

あれから、本を何度も見直し、入力しなおして間違いなのですが、やはりエラーがなおらず。。。
どなたか、再度教えていただけないでしょうか?

ちなみに、index.htmlをいじる前は、きちんと表示させた画面がブラウザに表示されていました。
なので、index.htmlが何かおかしいのかな??と思っております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hasami

2020/04/20 12:16

hello/urls.pyを提示してもらえますか?
sorara

2020/04/20 12:19

hasamiさん! いつも、ありがとうございます。 hello/urls.pyを貼り付けました(><)
guest

回答1

0

ベストアンサー

一般的にurlテンプレートタグは以下のように使用します。

html

1{% url '<app_name>:<view_name>' %}

hello/index.htmlのformタグを下記のようにしたらどうなりますか?

html

1<form action="{% url 'hello:index' %}" method="post"> 2<!-- or <form method="post"> -->

また、hello/urls.pyに下記を追加して下さい。

python

1app_name = 'hello'

投稿2020/04/20 12:31

編集2020/04/23 12:46
hasami

総合スコア1277

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sorara

2020/04/20 12:41

ありがとうございます。 私の理解力がなくて質問させていただきたいのですが、python=urls.pyでHTML=index.htmlでよろしいでしょうか? また、以下は例です。にあげてくださっているpythonは私が入力しているテンプレートで間違いなく、HTMLの方は違うということでよろしいでしょうか?
hasami

2020/04/20 12:53

上の質問を理解できておらず、申し訳ないのですが・・・。 index.html(テンプレート)に以下を記述したら・・・、 (hello:formに留意してください。アプリ名:ビュー名です。) <form action="{% url 'hello:form' %}" method="post"> hello/urls.pyには、以下のパスがないといけません。 (nameキーワード引数で指定してある文字列がビュー名です。) path('xyz/', views.xyzfunc, name='form'),
sorara

2020/04/20 12:57

全然です! いつも、変な質問ばかりして、こちらこし、申し訳ございません(><) そういうことなんですね! 本の通りやったつもりですが、うまくいかず、、、もう一度本を見直したいと思います。 いつも、ありがとうございます!
sorara

2020/04/23 12:27

hasamiさん! 度々、ありがとうございます(;;) index.htmlを変えてみました。 そしたら、エラーはおなしですが、内容が変わりました! NoReverseMatch at /hello/ 'hello' is not a registered namespace ↑という、エラー内容になりました(;;)
hasami

2020/04/23 12:32

<project>/urls.confで、hello/urls.confをincludeしてますか?
sorara

2020/04/23 12:34

勉強不足で大変申し訳ございません。 どこをみたら、includeしてるかわかりますでしょうか?
hasami

2020/04/23 12:36

django_app/urls.pyです。
sorara

2020/04/23 12:38

ありがとうございます。 確認しましたら、includeしておりました。 念のため、django_app/urls.pyを質問に貼り付けさせていただきたいと思います。
sorara

2020/04/23 12:50

hasamiさん! app_name = 'hello'を追加したらなりました〜! もし、よろしければこれはどうして、これが必要だったのでしょうか?
hasami

2020/04/23 13:01

Djangoプロジェクトが、アプリを識別するための名前空間で、複数のアプリで同じビューの名前があっても、DjangoのURLリゾルバが、それらを識別するものです。
sorara

2020/04/23 13:04

そういうことなんですね! 本当に、ありがとうございました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問