【发布时间】: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'), )