Python Django NoReverseMatch在模板中使用URL

时间:2013-10-21 18:03:43

标签: python django url

我知道这是一个常见问题,但我在这里找到的答案都没有帮助我。 我无法弄清楚这里有什么问题(是的,我试过''并且没有它们在网址中)

这是我到目前为止所得到的

模板:

<html>
<body>
<div> Link here </div> <a href="{% url 'index' %}">{{ formText }}</a>
</body>
</html>

url(自己的配置)

from django.conf.urls import patterns, include, url
from metadaten import views

urlpatterns = patterns('', 
     url(r'^$', views.index, name='index'),
)

root url:

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',

    url(r'^metadaten/', include('metadaten.urls', namespace='metadaten')),
    url(r'^admin/', include(admin.site.urls)),
)

观点:

from django.http import HttpRequest, HttpResponse, HttpResponseRedirect
from django.template import RequestContext, loader
from django.shortcuts import render, get_object_or_404
from metadaten.models import Title
from django.core.urlresolvers import reverse

def index(request):
    return render(request, 'metadaten/index.html', {'formText' : 'foo'})

错误消息:

Reverse for 'index' with arguments '()' and keyword arguments '{}' not found.

为什么我无法使用{%url%}构建简单的href?

如果这个问题很容易弄明白,请不要怪我:(

1 个答案:

答案 0 :(得分:3)

您使用了metadaten的命名空间。您需要使用{% url 'metadaten:index' %}

查看url tag的最后一个示例。