我正在查询数据库中的对象并通过我的视图将其传递给我的html文件。
我设置urls.py的方式是/index/object_primary_key
-
因此,我的数据库中的每个对象都有自己的URL。
这是我输入的代码,认为它可以工作,但我现在知道URL功能不起作用:
<a href="{% url 'index'%} {{object.pk}}">{{object.title}}</a>
有没有办法使用查询并将其附加到网址?
答案 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%}”