如何在Django中创建类似WordPress的URL命名约定



我是Django和WordPress的新手,如果你创建了一个名为"hello world"的帖子,那么默认情况下的URL将是这样的

wordpress.com/2012/07/05/hello-world/

如果您创建另一个同名的帖子,它将是

wordpress.com/2012/07/05/hello-world-2/

我想在 Django 中实现相同的目标,我正在考虑创建一个这样的示例 urlconf

(r'^articles/(d{4})/(d{2})/(?P<name>w+)', 'article.views.article_detail')

并在视图中分解名称并循环访问所有项目并匹配名称。

但问题是我将无法动态引用帖子。例如,如果我要链接hello world帖子,我需要找出已经存在多少个同名的帖子,然后将额外的数字附加到其中,这是低效的。

那么在 Django 中做到这一点的最佳方法是什么?

请参阅 Django 的 {{ url }} 模板标签的文档。它允许您向其传递视图名称和参数,并自动生成正确的 URL。

您可以在生成其 slug 的函数中为每个帖子的名称附加数字 - 您可以查看 django-autoslug

最新更新