Django自定义url结构

时间:2016-04-20 17:50:16

标签: django django-urls

是否有自定义样式网址的内置或第三方应用?

我想要自定义网址,例如: example.com/article-type/article-name-2015-24-12

如果文章类型是从外键创建的,并且在网址的末尾会有发布日期。

在模板中,我使用{% url 'article' article.pk %}来调用它们。 (所以将来当我的老板决定改变网址结构时,我不必在任何地方改变它)

有类似的东西吗?如果没有,任何人都可以踢我正确的方向如何实现这样的功能?

1 个答案:

答案 0 :(得分:2)

您可以在模型上构建网址,覆盖the get_absolute_url() method

像这样的东西

def Something(models.Model):
    name = models.CharField(max_length=100)
    slug = models.SlugField()
    created = models.DateTimeField()
    article_type = models.ForeignKey(ArticleTypes)

    def get_absolute_url(self):
        return '/{}/{}-{}-{}-{}'.format(
            self.article_type, self.slug, self.created.year, 
            self.created.month, self.created.day)

在模板中,您将使用

<a href="{{ something.get_absolute_url }}">{{ something.name }}</a>