Django如何定义常用的url

时间:2012-07-30 07:14:19

标签: django url tags

我正在实现目录服务,如您所知,列表网址出现在很多地方。我知道使用{% url %}标记,对于像全局列表网址结构更改这样的情况,它仍然不是防弹,比如我有{% url id=listing.id %}并且必须将slug添加到URL {% url id=listing.id slug=listing.slug %} < / p>

全球搜索&amp;替换是一种选择,但我很好奇是否有规范的方式 解决这个问题。

目前,我的方法是listingurl.html只有{% url id=listing.id slug=listing.slug %},而且需要将网址只包含listingurl.html,但我不确定是否实施自定义过滤器效率更高?

2 个答案:

答案 0 :(得分:2)

不是100%确定这是有效的,如果它是最优雅的解决方案:

some_template.html

{% include 'listing.html' with url_thing %}

listing.html

{% url url_thing id=object.id %}

答案 1 :(得分:1)

处理它的最佳方法IMHO是为您的模型添加get_absolute_url方法。然后,您可以只调用该方法,而不是在模板中反转URL:

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

然后:

<a href="{{ listing.get_absolute_url }}">{{ listing }}</a>