我有一个Django项目,我想在所有网站上使用应用程序。我的项目看起来像这样:
project
src
project
urls.py
views.py
...
web
migrations #package
urls.py
views.py
...
templates
web
index.html # I want this to be my root page
page2.html # This is the second page I'm trying to link to
我正在尝试在index.html
中创建一个链接,将我带到page2.html
。这就是我正在做的事情
在project->urls.py
我url(r'^$', include('web.urls', namespace="web")),
。这应该将所有页面请求定向到网址http://127.0.0.1:8000/
到页面index.html
project->views.py
为空,因为我希望web
应用提供所有网页。
在web->urls.py
url(r'^$', views.index, name='home_page')
我web->views.py
与def index(request):
print("Main index Page")
return render(request, 'web/index.html', {})
和功能相关
index.html
返回正确的页面。
此操作正常,直到我为page2.html
的{{1}}添加链接。链接如下所示:{% url 'web:page2' %}
。我更新web->urls.py
。我将以下函数添加到web->views.py
:
def page2(request):
print("Page2")
return render(request, 'web/page2.html', {})
现在我
Reverse for 'page2' with arguments '()' and keyword arguments '{}' not found. 1 pattern(s) tried: ['$page2/?$']
使用' {%url' web:page2' %}'突出显示。
当我删除链接时,一切正常。我的逻辑/设置有什么问题?
答案 0 :(得分:2)
您需要添加其他网址格式:
urls = [
url(r'^page2/$', views.page2, name='page2'),
url(r'^$', views.index, name='home_page'),
]
或者,传递一个参数,您可以使用该参数来标识要渲染到视图的页面。目前,当URL与第2页匹配时,您没有将URL映射到要调用的函数,只是主页。