最好将slug保存到DB还是动态生成?

tho*_*mad 5 django slug

我正在开发一个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)
Run Code Online (Sandbox Code Playgroud)

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

由于我的计划是让它与标题匹配,我不知道在数据库中是否有重复字段是否有意义.

谢谢!

Joh*_*kin 8

如果您使用slug进行装饰(而非查找)目的,动态生成它是最好的主意.

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

@property
def slug(self):
  return slugify(self.title)
Run Code Online (Sandbox Code Playgroud)