项目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>
请告知。
答案 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'),
)元组中添加了一个类似的模式,您将用户重定向到该模式!
如果是,那么你是否为它创建了一个合适的视图!