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。所有字母都是小写的,空格用连字符代替。