Мастер форм Python Django: как реализовать кнопку отмены

Я использую мастер форм и хочу реализовать кнопку отмены, которая возвращает меня на страницу, на которой я щелкнул ссылку, которая привела меня к мастеру форм. Есть ли умный способ сделать это? На данный момент я добавляю перенаправление на ссылку, которая запускает мастер форм следующим образом:

<td><a href="/lecture/add/?redirect={{ request.path }}">create new lecture</a></td>

Затем в get_context_data я добавляю self.request.GET.get('redirect') в контекст. В моем шаблоне у меня есть кнопка «Отмена», которая перенаправляет на ссылку из контекста. Но это работает только на шаге 1. На всех остальных шагах информация пропадает. Так у кого-нибудь есть идея, как это решить? Помощь очень ценится!


person Magda    schedule 31.01.2014    source источник


Ответы (1)


Возможно, вы захотите использовать скрытое поле ввода для передачи действия отмены при каждой отправке формы:

<input type="hidden" name="redirect" value="{{ cancel_action }}" />

А затем прочитайте это в представлении:

def get_context_data(self, form, **kwargs):
    # ...
    if self.request.GET.get('redirect'):
        # ...
    elif self.request.POST.get('redirect'):
        context.update({ 'cancel_action' : self.request.POST.get('redirect') })
    # ...
    return context
person hielsnoppe    schedule 31.01.2014