是否可以定义Django urlpattern,它会获得任意数量的相同类型参数并将它们传递给视图?
让我们说我想创建一个页面,从url获取一个数字列表并对它们求和。所以这些都是有效的网址:
/sum/10/99/12/
/sum/1/2/3/4/5/6/7/8/9/
/sum/3/
我猜这个观点看起来像这样:
def sum_view(request, *args):
return render(request, 'sum.html', {'result': sum(args)})
问题是urlpattern应该怎么样?也许是这样的:
url(r'^sum/((\d+)/)+$', views.sum_view)
但是这种方式只能重复最后一次重复两次:args == ('1/', '1')
。什么是正确的正则表达式来获取视图中传递的所有数字?
答案 0 :(得分:4)
你可以捕获一个参数,例如function blah()
{
var alternativeAptTimeBit = document.getElementById('alternativeAptTime');
/* var alternativeAptDateBit = document.getElementById('alternativeAptDate');
var alternativeAptDoctorBit = document.getElementById('alternativeAptDoctor');*/
var table = document.getElementById("tbl-appointment-requests");
var rows = table.rows;
for (var i = 0; i < rows.length; i++) {
if (alternativeAptTimeBit.innerHTML === "0")
{
alternativeAptTimeBit.className="glyphicon glyphicon-remove";
alternativeAptTimeBit.innerHTML = null;
} else {
alternativeAptTimeBit.className="glyphicon glyphicon-ok";
alternativeAptTimeBit.innerHTML = null;
}
}
'1/2/3/4/5/6/7/8/9/'
在视图中拆分列表。
url(r'^sum/(?P<numbers>[\d/]+)$', views.sum_view)
答案 1 :(得分:1)
Django的urlpatterns基于python的regexp,因此无法从重复组中捕获所有数据。请查看此question以获取解释。
你必须自己拆分和处理它们(比如@Alasdair建议)。