Django中的slug字段是干什么用的


Django 中的slug字段可以生成友好的url,例如,使用文章标题生成URL。我建议使用函数生成slug,给定标题(或其他数据),而不是手动设置。

例如:

<title> The 46 Year Old Virgin </title>
<content> A silly comedy movie </content>
<slug> the-46-year-old-virgin </slug>

现在让我们假设我们有一个Django模型,例如:

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField(max_length=1000)
    slug = models.SlugField(max_length=40)

如何使用具有有意义名称的URL引用此对象?您可以使用Article.id,因此URL将如下所示:

www.example.com/article/23

或者,您可以像这样引用标题:

www.example.com/article/The 46 Year Old Virgin

问题是,空格在URL中无效,需要将它们替换%20为丑陋的,使其如下所示:

www.example.com/article/The%2046%20Year%20Old%20Virgin

那并没有解决我们有意义的网址。这不会更好:

www.example.com/article/the-46-year-old-virgin

这是一个slug the-46-year-old-virgin。所有字母都是小写的,空格用连字符代替。