Djangoのincludeの仕様が変っていてハマったのでメモ
DjangoはPythonのフレームワークです。Qiitaに投稿されていたDjango入門を写経していて、さっそくつまづきましたので自分用にもメモ。
エラーの元になったのは下記の部分。プロジェクトのurls.pyの中でincludeを使ってルーティングする部分です。
urlpatterns = [
url(r’^admin/’, admin.site.urls),
url(r’^cms/’, include('cms.urls’, namespace=’cms’)),
]
URLのルーティングをする際、includeというのを使います。どうもここの仕様が変わっているようです。
サーバには下記のようなエラーが出ていました。
Specifying a namespace in django.conf.urls.include() without providing an app_name is deprecated. Set the app_name attribute in the included module, or pass a 2-tuple containing the list of patterns and app_name instead
そこで、いろいろ調べたら答えはこちらのブログで見つけました。>メモ的思考的な
さっきの部分を下記のように修正すると正常に動作しました。
urlpatterns = [
url(r’^admin/’, admin.site.urls),
url(r’^cms/’, include(('cms.urls’,’cms’),)),
]
ポイントはnamespaceを使わないこと。それと、includeの一つ目の引数としてカッコでくくって渡すこと。
以上、同じところでつまづいた方のお役にたったら。最近のチュートリアルでもこの部分は治ってなかったり、同じところで困っている人は多いかも。自分へのメモとして。
ディスカッション
ピンバック & トラックバック一覧
[…] Djangoのincludeの仕様が変っていてハマったのでメモ Django2.0から必須になったon_deleteの使い方 DjangoアプリをHerokuにデプロイする時のエラー対処 whitenoise編 […]