2

我正在实施一个目录服务,如您所知,列表 URL 出现在很多地方。我知道使用{% url %}标签,对于全局列表 url 结构更改等情况,它仍然不是防弹的,比如我已经{% url id=listing.id %}并且必须在 URL 中添加 slug,例如{% url id=listing.id slug=listing.slug %}

虽然全局搜索和替换是一种选择,但我很好奇是否有解决此问题的规范方法。

目前我的方法是只有一个listingurl.html,只要有{% url id=listing.id slug=listing.slug %},只要有 url 就可以包含listingurl.html,但是我不确定实现自定义过滤器是否会更有效?

4

2 回答 2

2

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

some_template.html

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

清单.html

{% url url_thing id=object.id %}
于 2012-07-30T10:39:44.357 回答
1

恕我直言,处理它的最佳方法是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>
于 2012-07-30T14:57:17.270 回答