重定向导致我在Django中找不到页面错误

时间:2014-09-07 10:29:46

标签: python django

项目urls.py包含应用网址。我正在使用HttpResponseRedirect在网站上发布喜欢。我不是要求模板,所以这就是为什么不使用render_to_response。我的应用视图是:

def like_article(request, article_id):
    if article_id:
        a = Article.objects.get(id=article_id)
        count = a.likes
        count += 1
        a.likes = count
        a.save()
    return HttpResponseRedirect('articles/get/%s' % article_id)

我的应用urls.py反映了像这样的重定向:

    url(r'^like/(?P<article_id>\d+)/$', 'article.views.like_article'),

我从父母那里扩展的“文章”HTML文件说:

    <p>{{article.likes}} people liked this article</p>

我从base.html扩展的单篇文章页面显示:

    <p><a href="/articles/like/{{article.id}}">Like</a></p>

请告知。

2 个答案:

答案 0 :(得分:0)

您最好在模板中使用{%url [name] [参数]%},而在视图中使用反向功能来创建网址。

在你的问题中,我认为问题是url路由器不匹配。

请参阅:

<p><a href="/articles/like/{{article.id}}">Like</a></p>

 url(r'^like/(?P<article_id>\d+)/$', 'article.views.like_article'),

似乎/article前缀未出现在您的网址中。

答案 1 :(得分:0)

您是否已映射网址 - articles/get/article_id,我在urlpatterns(例如:url(r'^get/(?P<article_id>\d+)/$', 'article.views.get_article', name='get_article'),)元组中添加了一个类似的模式,您将用户重定向到该模式!

如果是,那么你是否为它创建了一个合适的视图!