前提・実現したいこと
python初学者です。
Djangoで簡単な本の管理アプリを作っています。
ローカルでサイトを動かした時、おそらくurls.pyの設定を間違っているからか、サイト画面が表示されません。
発生している問題・エラーメッセージ
Page not found (404) Request Method: GET Request URL: http://127.0.0.1:8000/book/list/ Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order: admin/ meibo/ blog/ book/ [name='list'] The current path, book/list/, didn't match any of these. You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.
該当のソースコード
ディレクトリ構造は、以下です。
├── book
│ ├── init.py
│ ├── pycache(以下省略)
│ ├── admin.py
│ ├── apps.py
│ ├── migrations(以下省略)
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ ├──templates──book──booklist.html
│ └── views.py
├── db.sqlite3
├── manage.py
└── mysite
├── init.py
├── pycache(以下省略)
├── settings.py
├── urls.py
└── wsgi.py
またこの他に、blogアプリとmeiboアプリもそれぞれディレクトリが存在します
該当コードは以下です
mysite/urls.py
from django.urls import path, include from django.views.generic import RedirectView urlpatterns = [ path('admin/', admin.site.urls), path('meibo/', include('meibo.urls')), path('blog/', include('blog.urls')), path('',RedirectView.as_view(url='/blog/')), path('book/', include('book.urls')), ]
book/urls.py
from django.urls import path from .views import BookListView urlpatterns = [ path('list/', BookListView.as_view(), name='list'), ]
book/models.py
from django.db import models class BookModel(models.Model): bookname = models.CharField(max_length=200) summary = models.TextField() rating = models.IntegerField()
book/booklist.html
{% for item in object_list %} {{ item.name}} {% endfor % }
book/views.py
from django.views.generic import ListView from .models import BookModel class BookListView(ListView): model = BookModel template_name = "booklist.html"
試したこと
urls.pyやsetting.py等いろいろ変えてみましたが、上手くいきませんでした。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/22 00:26
2020/04/22 04:07
2020/04/22 04:38
2020/04/22 07:16