使用查询对象追加URL

时间:2018-06-05 22:00:29

标签: python django

我正在查询数据库中的对象并通过我的视图将其传递给我的html文件。 我设置urls.py的方式是/index/object_primary_key - 因此,我的数据库中的每个对象都有自己的URL。

这是我输入的代码,认为它可以工作,但我现在知道URL功能不起作用:

<a href="{% url 'index'%} {{object.pk}}">{{object.title}}</a>

有没有办法使用查询并将其附加到网址?

2 个答案:

答案 0 :(得分:2)

正确设置网址格式后,更简单的方法是:

{% url 'index' object.pk %}

但最有效的是模型类中的get_absolute_url()方法:(在大多数情况下,由于url中的slug而使用)

这告诉Django如何计算对象的规范URL。它返回一个字符串,可用于通过HTTP引用对象。

我认为你的网址格式设置为以下

url(r'index/(?P<pk>\d+)',index,name='index')

该方法将是:

from django.urls import reverse

class ModelClass(models.Model):
    ''' fields '''
    def get_absolute_url(self):
        return reverse('index', args=[str(self.pk)])
        # or with kwargs={'pk':str(self.pk)}

在您的模板中,您可以这样称呼

<a href="{{object.get_absolute_url}}">See me</a>

答案 1 :(得分:0)

尝试“{%url'index'pk = object.pk%}”