我目前拥有/blue
形式的网址 - 每个网址都是一种颜色。关联的URL模式如下:
(r'^(?P<colour>\w+)$', 'views.colour')
我想知道是否可能有一个看起来像自然语言列表的URL,长度不确定,以-or-
分隔:
/blue-or-green-or-yellow
理想情况下,关联的URL模式会将每个匹配追加到Python列表中,随时可以在视图中处理:
(r'^(?P<colour_list>\w+)(?:-or-(?P<colour_list>\w+))+$', 'views.colour')
有没有办法在Django中这样做?
答案 0 :(得分:4)
(?P<colour_list>(\w+(\-or\-)?)+)
之类的内容会获得整个子字符串匹配,然后您可以按-or-
分割
但请注意,然后blue-or-
才有效匹配,因此您可能希望将其拆分为:filter(bool, colour_list.split('-or-'))
答案 1 :(得分:0)
这样的事情会有所帮助:
采用逗号分隔的颜色
(r'^(?P<colours>[\w,]+)$', 'views.colour')
然后在视图中:
colours = colours.split(',')
答案 2 :(得分:0)
试试这个regex
:
(\w+(?:-or-)?)+
或使用字符串拆分:
result = colours.split("-or-")