0

我在模板中有一些链接,我想指向特定的 url。

模板在 url 访问:loacalhost:8000/account/profile

{% for poll in voted_poll_list %}
    <h4><a href="{{ poll.link_url }}">{{ poll.title }}</a> </h4>
{% endfor %}

在 models.py 中,我为要在模板中使用的投票对象创建了 url。

def link_url(self):
           return "polls/"+ "allcat/" +str(self.id)

问题是当点击模板中的链接时,它指向loacalhost:8000/account/profile/polls/allcat/1而不是loacalhost:8000/polls/allcat/1与 url 模式匹配

url(r'^polls/(\w+)/(?P<pid>[-\d]+)/', 'pollsite.views.poll_detail', name='detail_poll'),

问题是对象的链接 url 附加到当前 url。我怎样才能避免这种情况?

4

2 回答 2

3

@garnertb 的解决方案有效,但您可能应该考虑使用该reverse功能而不是硬编码您的网址。

就像是:

return reverse('detail_poll', self.id)

这不仅会处理前导斜杠,而且如果您开始更改 url 配置,也可以避免麻烦。

于 2013-10-10T17:54:40.173 回答
2

尝试使用正斜杠引导 url:

def link_url(self):
           return "/polls/allcat/" +str(self.id)
于 2013-10-10T16:47:16.273 回答