2016-01-13 64 views
2

我需要传递两个参数中的URL: 如:http://127.0.0.1:8000/events/103,104/3/多PARAMS

这里

  • 参数1 = 103,104
  • 参数2 = 3

我使用的url patterm:

url(r'^events/(?P<categories_string>[^\/]*)/(?P<page_no>\d+)/$','main.views.events'), 

我也试过:

url(r'^events/(?P<categories_string>.*)/(?P<page_no>\d+)/$','main.views.events'), 

我View.py:

def events(request, categories_string='', page_no=1): 
    if categories_string =='': 
     return render(request, "main/events.html", {'message' : 'string is null'}) 
    return render(request, "main/events.html", { 'message': {'cat' : categories_string, 'pg' : page_no}}) 

而且我的输出是:

{'cat': '103,104/3', 'pg': 1} 

这是我第二日Django的工作,我将不胜感激如果我能够很好地参考阅读关于允许多个参数的做法。

回答

0

看起来很有可能您的正则表达式匹配103,104/3.*。假设你的猫输入总是喜欢digits,digits然后下面应该工作:

url(r'^events/(?P<categories_string>\d+,\d+)/(?P<page_no>\d+)/$','main.views.events'), 
+0

其实猫输入数字或数字,数字或数字,数字,数字等等......所以根据您的回答我用这个:它似乎工作的网址(r'^ events /(?P [\ d +,] +)/(?P \ d +)/ $','main.views.events'), –