设置一个默认值的参数来路由django中的url

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置一个默认值的参数来路由django中的url相关的知识,希望对你有一定的参考价值。

他全都!

我是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')。但我知道这是不正确的。

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

答案

您应该告诉django,可以省略by_category url中的路径。这里至少有两个选项:

1 - 创建一个没有路径的url但是在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')

更多关于省略url参数Django optional url parameters

以上是关于设置一个默认值的参数来路由django中的url的主要内容,如果未能解决你的问题,请参考以下文章

Django的路由设置

django——路由

URL中的Django默认参数

Django url (路由)

Django 路由

django的urls