类似的Django url模式匹配错误的模式

时间:2014-06-04 21:01:19

标签: regex django url-pattern

这可能是我不熟悉的正则表达式问题或规则,但我基本上有这2个网址

(r'quote', quote),
(r'email/quote/$', sendQuote),

但是当我去 mydomain.com/email/quote 时,它会被第一个抓住。我有什么不对的吗?

2 个答案:

答案 0 :(得分:4)

您需要使用^字符指定正则表达式的开头。类似于$指定它是正则表达式的结尾,^会说它是开始。

(r'^quote/$', quote),
(r'^email/quote/$', sendQuote),

答案 1 :(得分:1)

我假设它与订单有关。 quote匹配email/quote,因此首先匹配(忽略email/quote/$)。尝试首先命名最具体的路线,以全能(如果需要)结束:

(r'email/quote/$', sendQuote),
(r'quote', quote),
(r'.*', catchAll),