永久链接是如何工作的?

时间:2011-11-03 03:49:43

标签: python django permalinks

我在models.py文件中有以下代码,我想知道它是如何在django框架的urls.py/rest中使用的。它给了我什么好处?

    @models.permalink
    def get_absolute_url(self):
        return('catalog_category',(), {'category_slug':self.slug})

如何使用此方法?

2 个答案:

答案 0 :(得分:2)

这可用于返回包含当前对象的网址。如果您的模型和网址与@ models.permalink相关联。

一个例子可能是这样的 {% for offer in offers %} {{offer.title}} {{offer.get_absolute_url}}

在urls.py文件中查看你的related_names,应该有一个与.get_absolute_url函数相关的文件。

但是,如果您使用相同的模型返回多个网址,但是在不同的视图上。仍然可以使用.get_absolute_url。只是使用不同的语法,例如{% url url_related_name id=id %} id,您的实例中需要slug=offer.slug

答案 1 :(得分:1)

基本上,它用于避免必须在urls.py文件和models.py文件中指定模型的URL方案(Django非常DRY)。

查看Django documentation on the @permalink decorator