2017-04-04 72 views
0

我是Django的新手,我正在開發一個項目,其中有配置文件頁面。從Urlpatterns中的url中刪除空格(django)

嗯,問題是,主鍵有空格,但我不希望他們在URL中顯示,既不像「%20%」,我想加入的話。例如:

website.com/Example工作室 - > website.com/examplestudios

我已經試過這樣:

url ((r'^(?P<studio_name>[\w ]+)/$').replace(" ", ""), views.StudioView, name = 'dev_profile') 

但沒有工作(好像它關閉原始部分在讀取url之前串起來)並且're'發生相同。我一直在尋找解決方案,但我無法找到它們(並且slugify並不能說服我)。

這是什麼解決方案或你推薦什麼?

+2

在url中定義了patterens,Django會捕獲r'^ test/$'這意味着當有人試圖獲取yourdomain.com/test時,Django會抓住它並調用可能呈現模板的視圖。您需要在網址生成時解決您的問題,例如在模板。因此,在網址: url((r'^(?P [\ w] +)/ $'),views.StudioView,name ='dev_profile')。您需要將主鍵轉換爲單詞而無需模板空間。一種方法是使用slu for爲每個記錄。 – giaco

+0

此外,還可以將slug字段添加到Studio模型中,該模型是自動生成和不可編輯的字段(可以從名稱生成,例如Example Studios-> examplestudios)。 – giaco

+0

好吧,我達到了設置slu but,但現在我有另一個問題,我通過這樣一箇中間表在模板中調用studio_name:user.admin.studio_name(數據庫方案是這樣的:User - > Admin < - 工作室)。現在我不知道如何聲明一個存儲Studio模型的變量,所以我可以調用slug。 – AtenrevCode

回答

0

在url中定義了patterens,Django會捕獲r'^ test/$'這意味着當有人試圖獲取yourdomain.com/test時,Django會捕獲它並調用可能呈現模板的視圖。您需要在網址生成時解決您的問題,例如在模板中。因此在網址:
url ((r'^(?P<studio_name>[\w ]+)/$'), views.StudioView, name = 'dev_profile')
您需要將主鍵轉換爲無模板空格的單詞。一種方法是使用slu for爲每個記錄。 還可以將slug字段添加到自動生成和不可編輯字段的Studio模型中(可以從名稱生成它,例如Example Studios-> examplestudios)。