AttributeErrorについて:module'learning_logs'has no attribute'urls'のエラーレコード
pythonプログラミング入門実践この本の18章では,Webページの作成について述べると,本のコードをそのまま運ぶと上のエラーにぶつかる.原因はこの本が出版されたのが早いからかもしれない.
解決策は次のとおりです.
まずメインフォルダlearning_を変更logのurlsファイル:このファイルは、管理Webサイトで要求できるすべてのURLを定義します.つまり、サーバのホームページにアクセスするとurlがリンクするファイルは、learning_です.logs.urls
そしてlearning_logsファイルの下にurlsを新規作成します.pyファイル:urlに応答するビューを指定します.
次にビューを作成
このセクションは基本的に本と一致しています.サーバを実行すると、次の問題が発生する可能性があります.
learning_logs/urls.pyにapp_を加えるname = ‘learning_logs’.
理由はlearning_log/urls.pyではnamespaceをあげましたがlearning_logs/urls.pyにはapp_が設定されていませんname、だからlearningが見つからないlogsの下のモジュールは、エラーを報告します.
追加して実行しました:
解決策は次のとおりです.
まずメインフォルダlearning_を変更logのurlsファイル:このファイルは、管理Webサイトで要求できるすべてのURLを定義します.つまり、サーバのホームページにアクセスするとurlがリンクするファイルは、learning_です.logs.urls
from django.contrib import admin
from django.urls import path, include
import learning_logs
urlpatterns = [
path('admin/', admin.site.urls),
path(r'', include('learning_logs.urls',namespace='learning_logs'))
]
そしてlearning_logsファイルの下にurlsを新規作成します.pyファイル:urlに応答するビューを指定します.
from django.conf.urls import url
from . import views
urlpatterns = {
#
url(r'^$', views.index, name='index')
}
次にビューを作成
このセクションは基本的に本と一致しています.サーバを実行すると、次の問題が発生する可能性があります.
'Specifying a namespace in include() without providing an app_name '
django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without providing an app_name is not supported. Set the app_name attribute in the included module, or pass a 2-tuple containing the list of patterns and app_name instead.
learning_logs/urls.pyにapp_を加えるname = ‘learning_logs’.
urlpatterns = {
#
url(r'^$', views.index, name='index')
}
app_name = 'learning_logs'
理由はlearning_log/urls.pyではnamespaceをあげましたがlearning_logs/urls.pyにはapp_が設定されていませんname、だからlearningが見つからないlogsの下のモジュールは、エラーを報告します.
追加して実行しました:
Django version 3.1.6, using settings 'learning_log.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[10/Feb/2021 04:04:05] "GET / HTTP/1.1" 200 313