Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django NoReverseMatch虽然get_absolute_url返回正确的url_Django_Url - Fatal编程技术网

Django NoReverseMatch虽然get_absolute_url返回正确的url

Django NoReverseMatch虽然get_absolute_url返回正确的url,django,url,Django,Url,我试图在我的帖子模型中使用带有kwargs的get_absolute_url 在我的模型中,我得到了slug字段和get\u absolute\u url class Post(models.Model): ...... ...... def get_absolute_url(self): return reverse('post_detail',kwargs={'pk':self.id, 'slug':self.slug}) 在url.py中 url(r'^p/(

我试图在我的帖子模型中使用带有kwargs的get_absolute_url

在我的模型中,我得到了slug字段和
get\u absolute\u url

class Post(models.Model):
......
......


    def get_absolute_url(self):
        return reverse('post_detail',kwargs={'pk':self.id, 'slug':self.slug})
url.py中

url(r'^p/(?P<pk>\d+)/(?P<slug>[\w.@+-]+)/$',PostDetailView.as_view(),name='post_detail')
它返回正确的URL,即/p/1/这是测试/ 但是,当我在模板中使用它时,就像
post.get\u absolute\u url
一样,它返回NoReverseMatch

我在这里检查了很多问题,并抄写了答案,但是没有用


请问我做错了什么?

您不应该使用
url
模板标签。只要这样做:

<a href="{{ post.get_absolute_url }}"></a>


您当前的代码导致
reverse
被调用两次,一次在
get_absolute\u url
内部调用,一次在
get_absolute\u url
的输出中调用。这就是它失败的原因。

请发布相关代码-您的
url.py
和失败的实际模板代码。现在出现此错误
无效的块标记:“post.get_absolute_url”,预期为“empty”或“endfor”
您是否将
{%
更改为
{
?您确定正在执行
{post.get_absolute url}
而不是
{%post.get\u absolute\u url%}
from website.models import Post
p = Post.objects.first()
p.get_absolute_url()
# returns this
u'/p/1/this-is-a-test/'
<a href="{{ post.get_absolute_url }}"></a>