我希望在我的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很新,并且无法解决如何做到这一点。我意识到这将是相当简陋的。
答案 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()
一样简单。