Django Noob从根页面到子页面的URL

时间:2015-06-08 22:37:03

标签: django django-views

我有一个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.pyurl(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.pydef 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' %}'突出显示。

当我删除链接时,一切正常。我的逻辑/设置有什么问题?

1 个答案:

答案 0 :(得分:2)

您需要添加其他网址格式:

urls = [
    url(r'^page2/$', views.page2, name='page2'),
    url(r'^$', views.index, name='home_page'),
]

或者,传递一个参数,您可以使用该参数来标识要渲染到视图的页面。目前,当URL与第2页匹配时,您没有将URL映射到要调用的函数,只是主页。