【问题标题】:Django : model instance url is appending to the current urlDjango:模型实例 url 附加到当前 url
【发布时间】:2013-10-10 16:43:41
【问题描述】:

我在模板中有一些链接,我想指向特定的 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。我怎样才能避免这种情况?

【问题讨论】:

    标签: django


    【解决方案1】:

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

    类似:

    return reverse('detail_poll', self.id)
    

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

    【讨论】:

      【解决方案2】:

      尝试用正斜杠引导网址:

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

      【讨论】:

        猜你喜欢
        • 2019-06-22
        • 1970-01-01
        • 2010-11-15
        • 1970-01-01
        • 2013-06-23
        • 1970-01-01
        • 2020-09-24
        • 2022-09-27
        • 1970-01-01
        相关资源
        最近更新 更多