当我阅读Django代码时,我经常在模型中看到所谓的“子弹”。我不太清楚这是什么,但是我知道它与URL有关。应该如何以及何时使用这种this子?
“slug”是一种通常使用已获得的数据生成有效URL的方法。例如,一个ug使用文章标题来生成URL。我建议通过给定标题(或另一段数据)的函数来生成段,而不要手动设置它。
一个例子:
<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
由于网址中的空格无效,因此必须将其替换为%20,这将导致:
www.example.com/article/The%2046%20Year%20Old%20Virgin
两种尝试都不会产生非常有意义且易于阅读的URL。这个更好:
www.example.com/article/the-46-year-old-virgin
在此示例中,the-46-year-old-virgin是一个子弹:它是通过将所有字母缩进小写并用连字符替换空格来从标题创建的-。
the-46-year-old-virgin