Django将URL重定向到最新创建的博客帖子

时间:2011-03-26 03:56:43

标签: django django-templates django-views

我希望在我的urls.py中有一个重定向,以便当人们访问博客应用程序索引域时,我的博客应用程序中的最新Post条目会自动加载。

Blog.Post详细信息通过blog.views.post_detail(request,slug)方法提供,博客帖子最终会显示以下网址:

www.example.com/blog/this-is-the-slug/

当有人加载www.example.com/blog域名时,我希望他们能够自动重定向到最新的博客帖子。

我对urls.py很新,并且无法解决如何做到这一点。我意识到这将是相当简陋的。

1 个答案:

答案 0 :(得分:4)

url(r'^blog/$', 'blog.redirector'),
url(r'^blog/(?P<slug>[-\w]+)/$', 'blog.blog_post', name="blog_detail"),


def redirector(request):
     blog = Blog.objects.latest('id')
     return http.HttpResponseRedirect(reverse('blog_detail', args=[blog.slug]))

备选方案,有些人不喜欢反向,因为它大声失败。

您可以在博客文章模型上定义一个返回绝对网址的get_absolute_url方法,然后重定向就像http.HttpResponseRedirect(Blog.objects.latest('id').get_absolute_url()一样简单。