2012-07-16 62 views
0

我希望能夠以博客文章爲自動生成的URL的標題轉換在Django這樣的:自動網址別名創建上崗

  • 標題:這是文章#1 =>博客/物品─ 1
  • 標題:烹飪意大利麪條和肉丸=>博客/烹飪 - 意大利麪條 - 肉丸
  • 標題:#%#@ $! h4h4h4垃圾郵件5 @#$! =>博客/ h4h4h4-垃圾郵件

它們應該自動生成並在創建時過濾超過的單詞/字符。每次保存博文時,如果更改標題,URL也可能會更改。

我絕對可以從頭開始編程。但是,例如在Drupal中,已經有一個名爲'url alias'和'autopath'的模塊,只要您提交新的博客文章,就會生成這些網址。我想知道是否有人已經爲Django 1.4構建了一些簡單的東西。

回答

3

您想要使用SlugField,並使用Django的prepopulated fields功能將其與標題字段配對。

+0

好的我可以在管理員那裏做到這一點,但我只是在我的添加文章函數的過程中使用slugify併爲我的內容類型的模型保存SlugField? – Dexter 2012-07-16 18:01:22

+1

@Dexter:您可以在視圖代碼中使用'django.template.defaultfilters.slugify'來創建slu,,或使用['SlugField'](https://docs.djangoproject.com/en/1.4/ref/forms/字段/#slugfield)以自定義的形式。 – mipadi 2012-07-16 18:04:24

1
from django.template.defaultfilters import slugify 
slugify("b b b b") 
u'b-b-b-b' 
+0

這非常有幫助謝謝。然後,我只需添加我的某些文字/字符的過濾器。 – Dexter 2012-07-16 18:04:45

0

有所謂的,我一直在使用構建於mipadi提到SlugField的頂部Django Autoslug一個相當不錯的,簡單的模塊,但它會自動爲您創建蛞蝓,檢查數據庫的唯一性(默認情況下,將' - #'添加到slug的末尾直到它是唯一的),並將其存儲到字段中。

+0

這很好,但是這裏沒有列出安裝這個步驟的步驟以及如何使其工作。 – Dexter 2012-07-17 15:05:17