django URL의include를 설정하려면 appname:include() without providing an app_name

1371 단어 django
from django.contrib import admin
from django.conf.urls import url,include
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', include('myapp.urls', namespace='one')),
]

프로젝트를 실행하면 오류 메시지가 표시됩니다.
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.
제 django 버전은 2입니다. 다음은 원본 코드입니다.
def include(arg, namespace=None):
    app_name = None
    if isinstance(arg, tuple):
        # Callable returning a namespace hint.
        try:
            urlconf_module, app_name = arg

기본 appname=None, 그래서 우리가 직접 지정해야 돼요.
이 app네임이 뭘까요?
app_namespace (str) – Application namespace for the URL entries being included, 당신의 앱 이름입니다.
해결 방법:
문제를 해결하려면 URL 구성을 다음과 같이 변경합니다.
url(r'^$', include(('myapp.urls', 'app01'), namespace='one')),

그중에'app01'이 제 앱 이름이에요.
동시에app01.urls 중
from django.urls import path
from .views import index
app_name='common'
urlpatterns = [ path('',index,name='index'), ]

좋은 웹페이지 즐겨찾기