我想在我的Django URL dispatcher中匹配以下形式的URL:
/(?P<location>\w+)-holidays/in-(?P<month>\w+)/to-(?P<top_price>\d+)复杂的一点是,我希望路径的三个单独元素中的任何一个都是可选的。因此,我想匹配以下所有内容:
/venice-holidays
/venice-holidays/in-june/
/venice-holidays/in-june/to-1000
/venice-holidays/to-1000
/in-june
/in-june/to-1000
/to-1000我能用Django URL模式做到这一点吗?很抱歉,如果这是一个副本,我已经做了一些搜索,但无法找到这个问题。
更新:我计划检查location和month等在视图中是否有效,而不是在URL中为它们提供模式。
发布于 2013-01-15 19:28:39
我做过类似的事情,我是这样解决的:
url.py:
url(r'^(?P<location>[\w]+)/(?P<month>[\w]*)/?(?P<something>[\w]*)/?', ...),views.py:
def course_list(request, location, month = None, something = None):
if month:
# do stuff你真的希望在你的url中有一个“基本路径词”作为第一项。
如果您这样做:
url(r^(?P<location>[\w]*) ... ),这将与所有urls非常匹配
https://stackoverflow.com/questions/14335284
复制相似问题