当我阅读Django代码时,我经常在模型中看到所谓的“slug”。我不太确定这是什么,但我知道它与url有关。这个鼻涕虫什么时候该怎么用?
(我已在本术语表中阅读了它的定义。)
鼻涕虫 某物的缩写标签,只包含字母、数字、 下划线或连字符。它们通常用于url中。例如, 在一个典型的博客入口URL中: https://www.djangoproject.com/weblog/2008/apr/12/spring/最后一位 (弹簧)是鼻涕虫。
当我阅读Django代码时,我经常在模型中看到所谓的“slug”。我不太确定这是什么,但我知道它与url有关。这个鼻涕虫什么时候该怎么用?
(我已在本术语表中阅读了它的定义。)
鼻涕虫 某物的缩写标签,只包含字母、数字、 下划线或连字符。它们通常用于url中。例如, 在一个典型的博客入口URL中: https://www.djangoproject.com/weblog/2008/apr/12/spring/最后一位 (弹簧)是鼻涕虫。
当前回答
Slug在Django中用于动态生成一个人类友好/可读的URL。例如,这个页面的当前URL是这样的: Django中的“slug”是什么?
注意URL是如何被实际的问题(在Django中什么是slug)所代替的
其他回答
Slug在Django中用于动态生成一个人类友好/可读的URL。例如,这个页面的当前URL是这样的: Django中的“slug”是什么?
注意URL是如何被实际的问题(在Django中什么是slug)所代替的
Slug是针对特定内容的URL友好的短标签。它只包含字母,数字,下划线或连字符。鼻涕虫通常与各自的内容一起保存,并作为URL字符串传递。
Slug可以使用SlugField创建
Ex:
class Article(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField(max_length=100)
如果你想使用title作为slug, django有一个简单的函数叫做slugify
from django.template.defaultfilters import slugify
class Article(models.Model):
title = models.CharField(max_length=100)
def slug(self):
return slugify(self.title)
如果需要唯一性,在slug字段中添加unique=True。
例如,在前面的例子中:
class Article(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField(max_length=100, unique=True)
你懒得做鼻涕虫过程吗?别担心,这个插件会帮你的。 django-autoslug
也可以在django-admin中自动加载。在ModelAdmin添加:
prepopulated_fields = {'slug': ('title', )}
在这里:
class ArticleAdmin(admin.ModelAdmin):
list_display = ('title', 'slug')
search_fields = ('content', )
prepopulated_fields = {'slug': ('title', )}
简而言之,slug帮助摆脱那些丑陋的url与有效的url为例,在一个电子商务网站,而不是显示url为www.myecom.com/product/5432156,我可以显示它像www.myecom.com/product/iphone11与slug的帮助
这是一种生成有效URL的方法,通常使用已经获得的数据。例如,使用文章的标题生成URL。