【发布时间】:2015-03-04 00:48:12
【问题描述】:
我有一个项目,其中包含一个名为考试的应用。现在我的索引页面是这些应用程序之一的索引页面。所以 url 模式是这样的:
from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
url(r'^', include('exams.urls', namespace="exams")),
)
但是,将来我可能想为我的索引页面创建一个新视图并将 url 模式更改为如下所示:
from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
url(r'^exams/', include('exams.urls', namespace="exams")),
url(r'^/$', 'mysite.views.index', name="index"),
)
我想在我的模板中创建一些链接来索引它是否加载考试应用程序或其他视图。所以我尝试使用 url 方法的 name 参数(如上),但它似乎不起作用。当我在模板中使用{% url 'index' %} 时,它会返回以下错误:
Reverse for 'index' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
UPD:我忘了提到我尝试使用以下代码:
from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
url(r'^', include('exams.urls', namespace="exams"), name="index"),
)
我得到了我上面写的错误。
UPD2: 进一步澄清问题:
现在当我转到http://mydomain/ 时,我会看到我的应用程序索引。但也许将来我喜欢更改我的索引页面并使用另一个视图来创建它。因此,当我转到 http://mydomain/ 时,我会看到该视图呈现的页面,转到 http://mydomain/exams 时,我会看到我的应用程序索引页面。在这种情况下,我的 urls.py 将类似于我上面编写的第二个代码,我可以使用{% url 'index' %} 标签轻松链接到索引页面。但是现在我正在使用我在第一次更新中编写的代码。我希望我的模板将{% url 'index' %} 呈现为指向我的索引页面的链接(而不是使用{% url 'exams:index' %},因此当我以后更改 urls.py 代码时,我不必更改所有模板。
【问题讨论】:
-
看看这个问题,它可能会有所帮助。 stackoverflow.com/questions/22473390/…
-
您的 mysite.views.index 视图是否需要第二个参数,即
def index(request, other_arg):... ? -
@Raphael:实际上我现在没有 mysite.views.index,但我打算创建一个。但在我这样做之前,我希望我的索引成为我的应用索引页面。
标签: django django-urls