Django вопрос: нужна помощь с использованием HttpResponseRedirect - PullRequest
0 голосов
/ 25 февраля 2011

У меня есть представление с именем save_service_request. В конце кода он перенаправляет в представление под названием send_confirmation_email.

def save_service_request(request):
try:
    # some stuff
except:
        return HttpResponseRedirect(reverse(service_order, args = [contact.client.pk , service_type]))
    return HttpResponseRedirect(reverse(send_confirmation_email, args = [order.pk, service_type]))

Теперь я хочу сделать что-нибудь с этим. Если я на странице

(r'^quote/service_order/(?P<client_id>\d+)/(?P<request_type>\d+)/$', views.service_order),

перейдите в представление send_confirmation_email с помощью HttpResponseRedirect.

Но если ранее был назван URL.

(r'^quote/service_order/edit_items/(?P<client_id>\d+)/(?P<request_type>\d+)/$', views.service_order2),

иди отправь это на это

return HttpResponseRedirect(reverse(delete_confirmation, args = [order.pk, service_type]))

Это возможно при использовании операторов if.

1 Ответ

0 голосов
/ 25 февраля 2011

Использовать атрибут next:

В views.service_order

context = {'next': reverse('views.send_confirmation_email')}

В шаблоне:

<form action='?next={{ next }}'>

В представлении, подтверждающем форму:

if 'next' in request.GET:
    return HttpResponseRedirect(request.GET['next'])
...