相关疑难解决方法(0)

Django中的"slu"是什么?

当我阅读Django代码时,我经常在模型中看到所谓的"slug".我不太确定这是什么,但我知道它与URL有关.怎么以及什么时候应该使用这个slug-thing?

(我在本词汇表中已经阅读了它的定义.)

python django django-models slug

543
推荐指数
9
解决办法
15万
查看次数

为什么在Django中使用SlugField()?

Django models.SlugField()有助于我们创建一些很酷的网址.我的问题是为什么将它指定为一个字段

假设我有这个模型

 class Blog(models.Model):
    title = models.CharField()
Run Code Online (Sandbox Code Playgroud)

如果我想添加slug,我可以使用

 class Blog(models.Model):
    title = models.CharField()

    def title_slug(self):
       return slugify(self.title)
Run Code Online (Sandbox Code Playgroud)

在我可以使用的网址中

(r'^blog/(?P<id>\d+)/(?P<slug>[-\w]+)/$', 'app.views.blog_view'),
Run Code Online (Sandbox Code Playgroud)

并在意见中

def blog_view(request, id ,slug):
    get_object_or_404(Blog, pk=id)
    ...
Run Code Online (Sandbox Code Playgroud)

网址看起来像

example.com/blog/23/why-iam-here/

有三件事让我采用这种方法

  1. Slug字段没有隐含的唯一性.
  2. get_object_or_404(Blog, pk=id)必须快于get_object_or_404(Blog, slug=slug).
  3. 将slug字段添加到现有模型涉及数据迁移.

那为什么SlugField()?除了动态生成段塞的成本外,上述方法有哪些缺点?

django slug

41
推荐指数
2
解决办法
3万
查看次数

标签 统计

django ×2

slug ×2

django-models ×1

python ×1