2015-12-05 15 views
17

Gần đây tôi đã nâng cấp dự án Django lên phiên bản 1.9.Định dạng url mới ở Django 1.9

Khi tôi cố gắng chạy migrate, tôi nhận được hai lỗi sau đây:

  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.

thể ai đó hãy chỉ cho tôi cú pháp thích hợp như thế nào để làm điều này? Một mẫu ngắn gọn của số urls.py của tôi là bên dưới:

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

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

Cảm ơn bạn!

+1

Đây là [doc] (https://docs.djangoproject.com/en/1.9/ref/urls/#url) – styvane

Trả lời

24

Nhập ý kiến ​​của bạn trực tiếp, hoặc xem module của bạn:

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

Không sử dụng patterns chút nào, chỉ cần sử dụng danh sách hoặc bộ dữ liệu:

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

urlpatterns += [ 
    url(r'^signin/$', account_views.auth_login, 
     name='login'), 
] 
4

Bạn nên xóa dấu ngoặc kép xung quanh tên chế độ xem. Vì vậy, mã của bạn sẽ như thế

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

điểm 2, sử dụng danh sách, do đó, mã của bạn sẽ biến đổi để

urlpatterns = [ 
     url(r'^about/$', app.views.about, #without quote! 
      name='about'), 
    ] 
Các vấn đề liên quan