为帖子自动创建网址别名

时间:2012-07-16 17:15:46

标签: django django-urls

我希望能够将博客文章的标题转换为django中自动生成的网址,如下所示:

  • 标题:这是文章#1 =>博客/文章-1
  • 标题:烹饪意大利面和肉丸=>博客/蒸煮面条-肉丸
  • 标题:#%#@ $! h4h4h4垃圾邮件5 @#$! =>博客/ h4h4h4垃圾邮件

它们应该在创建时自动生成并过滤掉多余的单词/字符。每次保存博客文章时,如果更改标题,URL也可能会更改。

我绝对可以从头开始编程。但是,在Drupal中,已经有一个名为“url alias”和“autopath”的模块在您提交新博客帖子后立即生成这些URL。我想知道是否有人为Django 1.4构建了一些简单的东西。

3 个答案:

答案 0 :(得分:3)

您想使用SlugField,并使用Django的prepopulated fields功能将其与标题字段配对。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

有一个非常好的,简单的模块Django Autoslug,我一直在使用它建立在mipadi提到的SlugField之上,但它会自动为你创建slug,检查数据库的唯一性(默认情况下) ,将' - #'添加到slug的末尾,直到它是唯一的),然后将它存储到一个字段中。