使用锚标记来调用视图django

时间:2015-09-21 20:22:14

标签: python html django views

project.urls

from django.contrib import admin
from django.conf.urls import include, url, patterns
from django.conf.urls.static import static
from django.conf import settings
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^$', include('app.urls', namespace = 'app')),
)+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

urlpatterns += staticfiles_urlpatterns()

app.urls

urlpatterns = patterns('',
# ex: /polls/,
 url(r'^', index.as_view(), name = 'index'),
 url(r'^contact/', ContactMail.as_view(), name = 'contact'),
# url(r'^register/', register.as_view(), name = 'register'),
# url(r'^login/', login_user.as_view(), name = 'login'),

)+ static(settings.STATIC_URL,document_root = settings.STATIC_ROOT)

urlpatterns + = staticfiles_urlpatterns()

HTML

<a class="page-scroll" href="{% url 'app:contact' %}">Contact</a>

我收到错误:

Reverse for 'contact' with arguments '()' and keyword arguments '{}' not found. 1 pattern(s) tried: [u'$contact/']

知道为什么会这样吗?

提前致谢!

2 个答案:

答案 0 :(得分:3)

您已通过以$结尾的正则表达式包含应用程序网址,因此不会包含任何内容。不要那样做。

url(r'^', include('app.urls', namespace = 'app')),

答案 1 :(得分:2)

将您的应用网址包含在

url(r'^$', include('app.urls', namespace = 'app')),

表示您获得匹配的唯一网址是www.domainname.com/,因为您告诉django该网址必须以''开头,不包含任何字符并以{{1}结尾},所以在您应用的网址中,唯一匹配的是''视图。

如果您希望从index开始提供应用网址,则应在

处导入您的网址
/

例如,如果您希望自己的应用网址从url(r'^', include('app.urls', namespace = 'app')), 开始,就像/app/那样

/app/contact/

查看Here is how it look using DIV code below :( Image is above the text了解详情。