Использование redirect при разработке сайтов на Django

Блог Полезное

Использование redirect при разработке сайтов на Django

Использование redirect при разработке сайтов на Django

В этой статье я расскажу как мы используем функцию redirect в Django проектах. Она возвращает объект HttpResponseRedirect c правильным URL.  Использование этой функции вместо HttpResponseRedirect  имеет ряд преимуществ. Например, вы можете передовать ряд аргументов различных типов. Так же это избавит вас от импорта django.urlresolvers.reverse в ваши проекты в views.py.

Возможные аргументы:


  • Экземпляр модели. Эта запись вызовет метод get_absolute_url():


from django.shortcuts import redirect
from news.models import Article

def article(request, article_id):
article = Article.objects.get(pk=article_id)
return redirect(article)
# Все равно что: return HttpResponseRedirect(article.get_absolute_url())


  • Или такой вариант:


from django.shortcuts import redirect
from news.models import Article

def article(request, article_id):
return redirect('article_details', id=article_id)
# Все равно что: return HttpResponseRedirect(reverse('article_details', args=(article_id, )))


  • Абсолютный или относительный URL:


from django.shortcuts import redirect

def relative(request):
return redirect('/articles/1/')

def absolute(request):
return redirect('http://kmv-it.ru/articles/1/')

Эффективно и удобно. Рекомендую при разработке сайтов на django использовать в своих проектах именно redirect. Это конечно по возможности.