Django:URL可选参数重定向

时间:2014-05-20 09:09:38

标签: python django

我对Django中可选参数的使用有疑问。

这是我的示例代码。

url(r'^(?P<type>str)/(?P<term>2006)/$', 'myapp.views.index'),


def index(request, type, term, id = None):
    ..... { some code }

所以,我的目标是,当我访问网址时,http://x.x.x.x/myapp/str/2006/它应该显示一个带有ID号的表单作为选择框。当我选择一个特定的ID并点击show时,它将在该页面上显示详细的结果。

使用此当前设置,当我点击“显示按钮”时,表单会显示详细信息,但网址仍为http://x.x.x.x/myapp/str/2006/而不是http://x.x.x.x/myapp/str/2006/ {{id}}。

这是因为我在同一个视图函数中执行所有操作。

def index(request, type, term, id = None):
        if request.method == 'POST' and 'btn' in request.POST:
                .... show details
        else:
                ..... SHow the original form

从同一个功能视图发布时如何实现此http://x.x.x.x/myapp/str/2006/ {{id}}。

感谢。

1 个答案:

答案 0 :(得分:0)

只需将另一个带有id的url正则表达式添加到urls.py

即可
url(r'^(?P<type>str)/(?P<term>2006)/(?P<id>\d+)$', 'myapp.views.index'),
url(r'^(?P<type>str)/(?P<term>2006)/$', 'myapp.views.index'),