【发布时间】:2014-06-20 07:32:24
【问题描述】:
不是最好的标题..无论如何: 我有以下 URLConf 条目:
url(r'^events(?:/(?:(?P<event_id>\d+)|(?P<new>new)))?/?$', EventView.as_view(), name='events')
如您所见,在事件之后不能使用额外的路径组件,或者数字或单词“新”。我的问题是当尝试从模板中使用两个捕获组之一进行反向查找时。 Django 似乎没有意识到,如果给模板 url 标记提供了一个参数,那就没问题了,因为我的正则表达式说它要么是一个组,要么是另一个。
例如,说我想去:
/events/1
我正在尝试这样做:
{% url 'social_network:events' event.id %}
我得到:
Reverse for 'events' with arguments '(1,)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['events(?:/(?:(?P<event_id>\\d+)|(?P<new>new)))?/?$']
我还尝试使用命名参数(而不是 event_id=1)将参数传递到字典中,但仍然出现相同的错误。请注意,如果我删除了一个 ORed 捕获组,那么它会很好地解决。
有什么想法吗?
【问题讨论】: