我知道它看起来像一个简单的问题,但我还是太新了,不能自己整理出来,所以:
learning_log/urls.py
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', 'learning_logs.urls',name_space='learning_logs'),
]
以前我有以下错误,所以我删除了包含功能
ImproperlyConfigured:不支持在include()中指定名称空间而不提供app_name . 在包含的模块中设置app_name属性,或者传递包含模式列表和app_name的2元组 .
learing_logs/urls.py
"""Defines URL patterns for learning_logs."""
from django.conf.urls import url
from . import views
urlpatterns=[
#Homepage
url(r'^$',views.index,name='index'),
]
views.py
from django.shortcuts import render
#Create your views here.
def index(request):
"""The home page for Learning Log"""
return render(request,'learning_logs/index.html')
我正在使用Django 2.0和Python 3.6.1
你能否告诉我为什么我得到带有name_space arg的TypeError,这与Django版本有关,非常感谢提前 .
2 回答
您应该使用
include()
来包含来自另一个urls.py
的网址模式没有带有下划线的
name_space
参数 .include()
函数接受namespace
. 但是,正如错误消息所示,您应该在包含的urls.py
中设置app_name
而不是使用namespace
. 除非您多次包含相同的URL,否则不需要使用namespace
.你想要的参数可能是
name
而不是name_space
(Django 2.0 url() Docs)