【发布时间】:2016-06-12 11:29:31
【问题描述】:
我正在尝试在我的 Post 模型中使用 get_absolute_url 和 kwargs。
在我的模型中,我得到了 slug 字段和 get_absolute_url 的以下代码
class Post(models.Model):
......
......
def get_absolute_url(self):
return reverse('post_detail',kwargs={'pk':self.id, 'slug':self.slug})
在urls.py
url(r'^p/(?P<pk>\d+)/(?P<slug>[\w.@+-]+)/$',PostDetailView.as_view(),name='post_detail')
在我的模板中我得到了:
<ul>
{% for post in object_list %}
<li>
<a href="{% url post.get_absolute_url %}">
<b>{{ post.title}}</b>
</a>
</li>
{% endfor %}
</ul>
当我使用时:python manage.py shell
from website.models import Post
p = Post.objects.first()
p.get_absolute_url()
# returns this
u'/p/1/this-is-a-test/'
它返回正确的 URL,即 /p/1/this-is-test/
但是当我在像post.get_absolute_url 这样的 模板 中使用它时,它会返回 NoReverseMatch。
我在这里检查了很多问题并复制了答案,但是没有用。
请问我做错了什么?
【问题讨论】:
-
请发布相关代码 - 您的
urls.py和失败的实际模板代码。