Django:模型实例url附加到当前url

时间:2013-10-10 16:43:41

标签: django

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

在网址访问

模板: 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。我怎么能避免这个?

2 个答案:

答案 0 :(得分:3)

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

类似的东西:

return reverse('detail_poll', self.id)

这不仅可以处理前导斜杠,还可以避免在更改网址配置时出现问题。

答案 1 :(得分:2)

尝试使用正斜杠引导网址:

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