在django

时间:2018-03-02 16:32:31

标签: django python-2.7 url router

Hy all!

我是python / django的新手,我遇到了一个我无法解决的问题。我为站点的主页(1)配置了路由,为类别(2)配置了路由:

1) url(r'^$', IndexView().home, name='home')
2) url(r'^categoria/(?P<path>.*)/$', IndexView().by_category, name='by_category')

我需要设置我的主页默认情况下打开一个类别,例如 www.mysite.com/c=defaul_category

我试过某些方面,包括: url(r'^ /(?P \ w +)/ $',IndexView()。Home,name ='home') 的。但我知道这是不正确的。

所以......我不知道该怎么做。有人能帮助我吗? 谢谢

1 个答案:

答案 0 :(得分:1)

你应该告诉django,by_category url中的 path 可能会被省略。这里至少有两个选项:

1 - 再创建一个没有路径的网址,但在path中将url变量作为第3个参数创建:

url(r'^/(?P<c=vinhos>\w+)/$', IndexView().home, name='home')
url(r'^categoria/(?P<path>.*)/$', IndexView().by_category, name='by_category')
url(r'^categoria/$', IndexView().by_category,
    {'path': 'default_path'}, name='default_category')

2 - 更改正则表达式模式,以便省略路径参数。在路径组的末尾添加了|(或符号):

url(r'^categoria/(?P<path>.*|)/$', IndexView().by_category, name='by_category')

有关省略网址参数Django optional url parameters

的详情