我对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}}。
感谢。
答案 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'),