Django перенаправить URL на последний созданный пост в блоге - PullRequest
0 голосов
/ 26 марта 2011

Я хочу иметь перенаправление в своем urls.py, чтобы последняя запись Post в моем приложении Blog автоматически загружалась, когда люди посещают домен индекса приложения Blog.

Сведения о Blog.Post предоставляются черезметод blog.views.post_detail (request, slug) и запись в блоге будут иметь URL:

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

Когда кто-то загружает домен www.example.com/blog, я хочу, чтобы он был автоматическиПеренаправлено на последнюю запись в отдельной записи.

Я очень плохо знаком с urls.py и не могу понять, как это сделать.Я понимаю, что это было бы довольно элементарно.

1 Ответ

4 голосов
/ 26 марта 2011
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 в модели поста вашего блога, который возвращает абсолютный URL, тогда ваше перенаправление так же просто, как http.HttpResponseRedirect(Blog.objects.latest('id').get_absolute_url())

...