在Django中可以有多个URL指向一个一个视图,如:
urlpatterns = patterns('',
url(r'^archive/(\d{4})/$', archive),
url(r'^archive-summary/(\d{4})/$', archive, {'summary': True}),
)
这是可行的,当对于我上一篇记录的Django之逆向解析url就有困难了,因为同一个视图
有两个结果可以匹配,这里就用到了url()函数的参数name
可以这样:
urlpatterns = patterns('',
url(r'^archive/(\d{4})/$', archive, name="full-archive"),
url(r'^archive-summary/(\d{4})/$', archive, {'summary': True}, name="arch-summary"),
)这里对每一个试图对应的正则匹配一个名字,在模板中可以这样使用:
{% url 'arch-summary' 1945 %}
{% url 'full-archive' 2007 %}
这样,使用url

本文介绍了Django中URL的命名空间和命名模式,解决URL指向同一视图时的逆向解析问题。通过在name参数中使用冒号分隔指定命名空间,如`myapp:index`。同时,讲解了URLconf中include()函数的应用,它允许定义应用程序级别和实例级别的命名空间。在模板中,可以使用`foo:bar:视图名`的形式避免逆向解析冲突,其中`foo`代表应用级别命名空间,`bar`代表实例级别命名空间。
最低0.47元/天 解锁文章
1071

被折叠的 条评论
为什么被折叠?



