2014-03-01 90 views
0

我有一個名爲Tag的模型,我在我的數據庫中有很多這樣的模型。 我想通過一個URL來訪問他們在一個頁面上通過以下方式:Django - URL正則表達式模式

如果我想看到ID爲1,3和4的標籤,那麼URL應該在134 有什麼正則表達式模式結束了,我應該爲了從/.../134/這樣的URL中獲得一個列表[1,3,4]?

在此先感謝

回答

0

您需要固定寬度的標籤標識符(例如001003004),否則它是不明確的。如果你使用它,你可以捕獲\d+,然後在視圖中做這樣的事情:

>>> import re 
>>> tag_string = "001003004" 
>>> regex = re.compile("\d{3}") 
>>> tag_list = map(int, regex.findall(tag_string)) 
[1, 3, 4] 
0

可能難以/不可能做到只用正則表達式如果兩個A.)的連續數字的URL的數量是任意的,和B),你需要每個數字返回您的代碼單獨。

如果你只需要抓住的數字串(然後在後面的代碼解析它),你可以只使用這樣的: /(\d+)/(難逃/人的,如果他們使用作爲分隔符)

然後,你可以只運行在$ 1

如果需要的正則表達式每一位返回爲$ 1,$ 2,$ 3等一些字符串操作,我認爲唯一的解決辦法是一些很不雅觀,這樣的:

/(\d)(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?(\d)?/ 

...其中這種情況下,它最多可以在URL中支持10個標籤。