2012-04-25 16 views
0

在我的Django的urlconf中,我想返回一個404來查詢腳本的請求。否則,由於我使用的是FlatPage中間件,因此請求不必要地觸擊數據庫以查找相應的FlatPage。在Django的urlconf中匹配正則表達式「OR」而不發送匹配作爲視圖參數

我的問題是,正確匹配的以下模式正在向page_not_found視圖函數發送'php','cgi'或'pl'作爲template_name參數。

urlpatterns = patterns('', 
    # don't even bother looking up a flatpage for these matches 
    (r'\.(php|cgi|pl)$', 'django.views.defaults.page_not_found'), 
    ... 
) 

什麼是做這種正則表達式「或」邏輯,而不會將匹配作爲參數發送到視圖的方法?

回答

2

非捕獲組用(?:...)表示。

+0

謝謝,解決它。 – user1355212 2012-04-25 04:35:06

0

可以使用非捕獲組:(?:regex)

所以,你的模式將是:

(r'\.(?:php|cgi|pl)$', 'django.views.defaults.page_not_found'),