web-dev-qa-db-ja.com

Django 1.9の新しいURL形式

最近Djangoプロジェクトをバージョン1.9にアップグレードしました。

migrateを実行しようとすると、次の2つのエラーが発生します。

  1. Support for string view arguments to url() is deprecated and will be removed in Django 1.10 (got app.views.about). Pass the callable instead.
  2. Django.conf.urls.patterns() is deprecated and will be removed in Django 1.10. Update your urlpatterns to be a list of Django.conf.urls.url() instances instead.

誰かがこれを行う方法の正しい構文を私に見せてもらえますか?私の簡単なサンプルurls.pyは以下のとおりです。

urlpatterns = patterns('',
    url(r'^about/$', 'app.views.about',
        name='about'),
)

urlpatterns += patterns('accounts.views',
    url(r'^signin/$', 'auth_login',
        name='login'),
)

ありがとうございました!

20
jape

ビューを直接インポートするか、ビューモジュールをインポートします。

from apps.views import about
from accounts import views as account_views

patternsは使用せず、リストまたはタプルのみを使用してください。

urlpatterns = [
    url(r'^about/$', about,
        name='about'),
]

urlpatterns += [
    url(r'^signin/$', account_views.auth_login,
        name='login'),
]
26
Lorenzo Peña

ビュー名の前後の引用符を削除する必要があります。あなたのコードはそのようになります

urlpatterns = patterns('',
    url(r'^about/$', app.views.about, #without quote!
        name='about'),
)

ポイント2、リストを使用するので、コードは次のように変換されます

urlpatterns = [
        url(r'^about/$', app.views.about, #without quote!
            name='about'),
    ]
4
1844144