我正在实现目录服务,如您所知,列表网址出现在很多地方。我知道使用{% 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
,但我不确定是否实施自定义过滤器效率更高?
答案 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>