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

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

ただいまの
回答率

88.92%

DjangoのNoReverseMatchを解決したい。

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 196

m230546b

score 3

前提・実現したいこと

Django初心者です。書籍をもとに簡単な会員制Webアプリを作成しております。
エラーが解決できずご質問致します。

発生している問題・エラーメッセージ

NoReverseMatch at /
Reverse for 'account_login' not found. 'account_login' is not a valid view function or pattern name.
イメージ説明

該当のソースコード

【base.html】
{% load static %}

<html lang="ja">

  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>{% block title %}{% endblock %}</title>

    <!-- Bootstrap core CSS -->
    <link href="{% static 'vendor/bootstrap/css/bootstrap.min.css'%}"rel="stylesheet">

    <!-- Custom fonts for this template -->
    <link href="https://fonts.googleapis.com/css?family=Catamaran:100,200,300,400,500,600,700,800,900" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css?family=Lato:100,100i,300,300i,400,400i,700,700i,900,900i" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link href="{% static 'css/one-page-wonder.min.css' %}" rel="stylesheet">

    <!-- My style -->
    <link rel="stylesheet" type="text/css" href="{% static 'css/mystyle.css' %}">
    {% block head %}{% endblock %}
  </head>

  <body>
    <div id="wrapper">
      <!-- Navigation -->
      <nav class="navbar navbar-expand-lg navbar-dark navbar-custom fixed-top">
        <div class="container">
          <a class="navbar-brand" href="{% url 'diary:index' %}">PRIVATE DIARY</a>
          <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
          </button>
          <div class="collapse navbar-collapse" id="navbarResponsive">
            <ul class="navbar-nav ml-auto">
              <li class="nav-item {% block active_inquiry %}{% endblock %}">
                <a class="nav-link" href="#">INQUIRY</a>
              </li>
              </li>
            </ul>
            <ul class="navbar-nav ml-auto">
                <li class="nav-item">
                  <a class="nav-link" href="#">Sign Up</a>
              </li>
              <li class="nav-item">
                <a class="nav-link" href="#">Log In</a>
              </li>
            </ul>
          </div>
        </div>
      </nav>

      {% block header %}{% endblock %}
      {% block contents %}{% endblock %}

      <!-- Footer -->
      <footer class="py-5 bg-black">
        <div class="container">
          <p class="m-0 text-center text-white small">Copyright &copy; Your Website 2019</p>
        </div>
        <!-- /.container -->
      </footer>

      <!-- Bootstrap core JavaScript -->
      <script src="{% static 'vendor/jquery/jquery.min.js' %}"></script>
      <script src="{% static 'vendor/bootstrap/js/bootstrap.bundle.min.js' %}"></script>
    </div>
  </body>

</html>
【index.html】
{% extends 'base.html' %}

{% load static %}

{% block title %}Web上にあなた専用の日記ページを保存できるサービス | Private Diary{% endblock %}

{% block header %}

<header class="masthead text-center text-white">
  <div class="masthead-content">
    <div class="container">
      <h1 class="masthead-heading mb-0">Private Diary</h1>
      <h2 class="masthead-subheading mb-0">あなた専用の日記保存サービス</h2>
      <a href="{% url 'account_login' %}" class="btn btn-primary btn-xl rounded-pill mt-5">LOG IN</a>
    </div>
  </div>
  <div class="bg-circle-1 bg-circle"></div>
  <div class="bg-circle-2 bg-circle"></div>
  <div class="bg-circle-3 bg-circle"></div>
  <div class="bg-circle-4 bg-circle"></div>
</header>
{% endblock %}

{% block contents %}
<section>
  <div class="container">
    <div class="row align-items-center">
      <div class="col-lg-6 order-lg-2">
        <div class="p-5">
          <img class="img-fluid rounded-circle" src="{% static 'img/01.jpg' %}" alt="">
        </div>
      </div>
    </div>
  </div>
</section>

<section>
  <div class="container">
    <div class="row align-items-center">
      <div class="col-lg-6">
        <div class="p-5">
          <img class="img-fluid rounded-circle" src="{% static 'img/02.jpg' %}" alt="">
        </div>
      </div>
      <div class="col-lg-6">
        <div class="p-5">
          <h2 class="display-4">Save Your Diary</h2>
          <p>あなたの日記をWebに保存</p>
        </div>
      </div>
    </div>
  </div>
</section>

<section>
  <div class="container">
    <div class="row align-items-center">
      <div class="col-lg-6 order-lg-2">
        <div class="p-5">
          <img class="img-fluid rounded-circle" src="{% static 'img/03.jpg' %}" alt="">
        </div>
      </div>
      <div class="col-lg-6 order-lg-1">
        <div class="p-5">
          <h2 class="display-4">Membership System</h2>
          <p>会員制のWeb日記サービス</p>
        </div>
      </div>
    </div>
  </div>
</section>
{% endblock %}
【vies.py】
from django.views import generic

class IndexView(generic.TemplateView):
    template_name = "index.html"
【urls.py】
from django.urls import path
from.import views

app_name = 'diary'


urlpatterns = [
    path('', views.IndexView.as_view(), name="index"),


]

試したこと

エラーメッセージを調べてみたところ、ビューが有効ではないとのことなので、viws.pyの

class IndexView(generic.TemplateView):
template_name = "index.html"

class IndexView(generic.TemplateView):
template_name = "base.html"

に変えて試してみると次のような画面になりました。

イメージ説明

エラーからもbase.htmlに原因があるのではないかと思うのですが、そこから先がわかりません。
ご教授いただければ幸いです。宜しくお願い致します。

補足情報(FW/ツールのバージョンなど)

venvを作成し、Pycharmを使用しております。
書籍は「動かして学ぶpython Django入門」です。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

エラーの原因は、index.htmlの下記です。

<a href="{% url 'account_login' %}" class="btn btn-primary btn-xl rounded-pill mt-5">LOG IN</a>

これを削除すればWebページが表示されると思います(他に問題がなければ)。

もし、accountアプリがあって、loginnameされていているビューが、ルートURLConfにあれば、下記のようにして下さい。

<a href="{% url 'account:login' %}" class="btn btn-primary btn-xl rounded-pill mt-5">LOG IN</a>

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/05 21:30

    ご回答ありがとうございます。
    無事、表示できました。
    自分だけでは原因の箇所には辿り着けませんでした。

    キャンセル

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

  • ただいまの回答率 88.92%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る