【问题标题】:Redirection is leading me to Page not found error in Django重定向导致我在 Django 中找不到页面错误
【发布时间】:2014-09-07 10:29:46
【问题描述】:

项目 urls.py 包含应用程序 url。我正在使用 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>

请指教。

【问题讨论】:

  • 你最好在你的模板中使用{% url [name] [parameters] %},而在你的视图中使用reverse函数来创建url。
  • 您是否检查过您的like_article() 函数是否按预期执行,直到返回语句!
  • 是的,它执行没有错误。问题是在网站上发布喜欢。但是,点击喜欢后会导致我出现 404。当我返回页面时,它显示点赞已被记录。
  • 请张贴您的整个urls.py
  • from django.conf.urls 导入模式,包含,url urlpatterns=patterns('', url(r'^all/$', 'article.views.articles'), url(r' ^get/(?P\d+)/$', 'article.views.article'), url(r'^language/(?P[a-z\-]+\d+)/$' , 'article.views.language'), url(r'^create/$', 'article.views.create'), url(r'^like/(?P\d+)/$', ' article.views.like_article'), )

标签: python django


【解决方案1】:

您最好在模板中使用 {% url [name] [parameters] %} 而在视图中使用 reverse 函数来创建 url。

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

见:

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

还有:

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

您的网址中似乎没有出现/article 前缀。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我这样做是为了要求单篇文章显示。
    • 准确地说是 url(r'^get/(?P\d+)/$', 'article.views.article'),
    • 如果不包括在内,我想它不应该让我从“articles.html”中选择单篇文章。我可以在文章之间浏览,但无法重定向“喜欢”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    • 2016-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    相关资源
    最近更新 更多