5

我正在开发一个 django 项目,并希望在 url 的末尾包含一个 slug,就像在 stackoverflow.com 上所做的那样:http ://example.com/object/1/my-slug-generated-from-我的标题

对象 ID 将用于查找项目,而不是 slug - 并且,就像 stackoverflow.com 一样,在获取链接时,slug 根本不重要(只是在显示它时)。

:动态生成 slug 是否有不利(或有利),而不是将其保存为实际的数据库字段?

例如(不是真正的代码):

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

    def _slug(self):
      return slugify(self.title)
    slug = property(_slug)

而不是使用类似 AutoSlugField 的东西(例如)?

因为我的计划是让它与标题匹配,所以我不知道在数据库中有一个重复的字段是否有意义。

谢谢!

4

4 回答 4

8

如果您将 slug 用于装饰(而不是查找)目的,动态生成它是最好的主意。

此外,您发布的代码示例可以这样编写:

@property
def slug(self):
  return slugify(self.title)
于 2009-10-10T18:44:25.410 回答
2

Try making a slug out of the word "café" or "浦安鉄筋家族".

Chances are that it'll look like poo, unless you're really well-prepared.

Sometimes you need the ability to customize slugs.

于 2010-08-06T07:27:51.800 回答
1

缺点是每次渲染页面时都会自动生成 slug。好处是您不会使用永远不会直接查询的字段占用数据库中的空间。

无论哪种方式都很好,这仅取决于您的性能与空间要求。

于 2009-10-10T19:54:55.237 回答
0

动态生成 slug 的主要缺点是您错过了为每个对象自定义 slug 的能力,例如。让它们更短更漂亮。对于英文标题,这可以,但对于非英文内容,生成的 slug 可能很难看。

于 2009-10-22T19:02:00.567 回答