【问题标题】:Django custom url structureDjango 自定义 url 结构
【发布时间】:2016-08-13 14:02:05
【问题描述】:

是否有任何用于自定义样式 url 的内置或 3rd 方应用程序?

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

article-type 是从外键创建的,并且在 url 的末尾会有发布日期。

在模板中,我会使用{% url 'article' article.pk %} 调用它们。 (所以以后老板决定改url结构我就不用到处改了)

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

【问题讨论】:

  • 除非我误解了你想要什么——你可以只用 Django url 来做到这一点。但不是{% url 'article' article.pk %},而是{% url 'article' article.name article.date %} 或更好的东西,在Article 模型上有一个slug 并确保它是唯一的,然后你可以使用这样的slug {% url 'article' article.slug %}

标签: django django-urls


【解决方案1】:

您可以在模型上构建 URL,覆盖 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多