Fix lỗi Specifying a namespace in include() without providing an app_name

Em mới tập làm quen với router trong Django và có tạo 1 router như sau:

from django.urls import include, path

urlpatterns = [
    path('articles/', include('articles.urls', namespace='articles')),
    ....
]

Nhưng khi chạy thì thấy trình duyệt báo về lỗi:

'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.

Em có tìm trên doucment nhưng ko thấy hướng dẫn cụ thể về phần namespace. Bác nào biết chỉ giúp em cách fix lỗi này với. Em cảm ơn!

Được hỏi 5 tháng trước
Bình chọn bởi: Truc Le, Hanh Nguyen, Torrest Vũ, Hiệp Bùi, Hải Phạm, Hằng Đỗ, Khuê Kana, Minh Tran, Đức Tuấn, Lê Huyền Trang, Phạm Huy, Nguyễn Duy Tuấn, Hanh Kute, Thành Công, Đình Anh, Ánh Linh, Quỳnh Anh, Kim Hani, Trung Võ, Đăng Duy, Hani Pham, Khánh Duy, Ngọc Anh, Diệu Yến, Quang Nguyen, Huy Pro

Có 2 cách fix lỗi trên:

Thêm app_name trong Router

Code như sau:

url(r'^reviews/', include(('articles.urls', 'articles'), namespace='articles')),

Gán Giá Trị Cho app_name trong Từng File url.py

Code như sau:

# articles/urls.py
app_name = 'articles'
Trả lời 1 ngày trước

vào file urls.py trong app của bạn thêm dòng app_name="articles"

Trả lời 4 tháng trước

Thêm Trả Lời