🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Django

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

Python

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

Q&A

解決済

2回答

1027閲覧

[初心者]Djangoブログ作成にて、127.0.0.1:8000/detail表示したいがエラーになります。

ryuuabis

総合スコア24

Django

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

Python

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

0グッド

0クリップ

投稿2021/01/15 18:35

前提・実現したいこと

pythonフレームワークdjangoでブログ作成をしています。
テキストにてブラウザurlにurl/detail/記事番号/ にて個別の詳細画面が出るはずですが記事の内容も表示されす真っ白になります。

■■な機能を実装中に以下のエラーメッセージが発生しました。

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

127.0.0.1:8000/detail/2 とブラウザurlに打ち込むと真っ白の画面です。 127.0.0.1:8000/detail のみだと404エラーになり Using the URLconf defined in blogproject.urls, Django tried these URL patterns, in this order: admin/ admin/ list/ detail/<int:pk>/ The current path, detail/, didn't match any of these. と表示されます

該当のソースコード

#urlsファイル アプリ from django.contrib import admin from django.urls import path from .views import BlogList, BlogDetail urlpatterns = [ path('admin/', admin.site.urls), path('list/', BlogList.as_view()), path('detail/<int:pk>/', BlogDetail.as_view()), ] #urlsファイル プロジェクト from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('blogpost.urls')) ] #views.pyファイル アプリ from django.shortcuts import render from django.views.generic import ListView, DetailView from .models import BlogModel class BlogList(ListView): template_name = 'list.html' model = BlogModel class BlogDetail(DetailView): template_name = 'detail.html' model = BlogModel #templates内detail.htmlファイル プロジェクト {{ obuject.category }} {{ obuject.title }} {{ obuject.content }} {{ obuject.postdate }} #models.pyファイル アプリ from django.db import models class SampleModel(models.Model): title = models.CharField(max_length=100) number = models.IntegerField() CATEGORY = (('business','ビジネス'),('life','生活'),('other','その他')) class BlogModel(models.Model): title = models.CharField(max_length=100) content = models.TextField() postdate = models.DateField(auto_now_add=True) category = models.CharField( max_length = 50, choices = CATEGORY ) def __str__(self): return self.title

試したこと

最初はobjectを認識する番号が指定されていないとエラーが出てたので、アプリファイルのurls.pyのパスにint:pk/を追加したらそのエラーは解消したのですが、次は現在のパスはdetail/、これらのいずれとも一致しませんというエラーになります。
vscodeないではエラーは出てないです。
ランサーバーもしています。
初めてのフレームワークで原因がわからず手詰まりです。
詳しい方おりましたらご協力お願いします。

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

django

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

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

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

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

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

guest

回答2

0

ベストアンサー

これでいかがでしょう。

  • プロジェクト側(blogproject)のurls.py:

python

1urlpatterns = [ 2path('admin/', admin.site.urls), 3path('', include('blogpost.urls')), 4]
  • アプリ側(blogpost)のurls.py:

python

1urlpatterns = [ 2 path('', Index.as_view(), name="index"), 3 path('list/', BlogList.as_view(), name="list"), 4 path('detail/<int:pk>/', BlogDetail.as_view(), name="detail"), 5]
  • views.py:

python

1from django.shortcuts import render 2from django.views.generic import ListView 3from blogpost.models import BlogModel #こちらにエラー赤線 4 5class BlogList(ListView): 6 template_name = 'list.html' 7 model = BlogModel 8 9class BlogDetail(DetailView): 10 template_name = 'detail.html' 11 model = BlogModel

【追記】
ForestSeo さんのおっしゃる通り、detail.htmlの内容も修正が必要です。
仮にobject.~だったとしてもスペルミスしてますし、blogmodel.~が正解です。

投稿2021/01/15 22:49

編集2021/01/15 23:20
_whitecat_22

総合スコア1305

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

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

0

HTML

1{{ obuject.category }} 2{{ obuject.title }} 3{{ obuject.content }} 4{{ obuject.postdate }} 5```↓ 6```HTML 7{{ blogmodel.category }} 8{{ blogmodel.title }} 9{{ blogmodel.content }} 10{{ blogmodel.postdate }}

投稿2021/01/15 22:39

ForestSeo

総合スコア2722

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問