Django и urls.py: Как делают меня HttpResponseRedirect через именованный URL?

26
задан Martijn Pieters 22 April 2014 в 14:50
поделиться

2 ответа

Вам необходимо использовать функцию reverse () utils.

from django.urls import reverse
# or Django < 2.0 : from django.core.urlresolvers import reverse

def myview(request):
    return HttpResponseRedirect(reverse('arch-summary', args=[1945]))

Где args удовлетворяет всем аргументам в регулярном выражении вашего URL-адреса. Вы также можете указать именованные аргументы, передав словарь.

43
ответ дан 28 November 2019 в 06:33
поделиться

Более краткий способ написать, что оператор if будет if request.session.get ('user') . has_key в настоящее время устарел, а .get () возвращает None (по умолчанию, можно изменить, передав второй параметр). Итак, объединив это с ответом Совиута:

from django.core.urlresolvers import reverse

def login(request): 
    if request.session.get('user'):
         return HttpResponseRedirect(reverse('my-named-url'))
7
ответ дан 28 November 2019 в 06:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: