На самом деле у меня большая проблема с формой мастера django.
У меня 3 шага. Второй шаг может содержать данные или нет. Последний шаг — это шаг загрузки файла.
В классе WizardForm я переопределил метод get_context_data и включил в него это:
if self.steps.current == 'against_indication':
questions = None
try:
# get the machine
machine_id = self.kwargs['pk']
machine = Machine.objects.get(pk=int(machine_id))
# check if there is against indications
if machine.type_question is False:
questions = YhappsQuestion.objects.filter(type_modalite=machine.type)
else:
questions = CustomQuestion.objects.filter(machine=machine)
except Machine.DoesNotExist:
pass
if len(questions) == 0:
# we modify the form wizard to skip against indication step
self.render_next_step(form, **kwargs)
#self.render_goto_step(step='against_indication', goto_step='prescription', **kwargs)
Как видите, если нет вопросов, я пропускаю второй шаг (против_индикации), чтобы перейти к следующему шагу (предписание).
Проблема появляется здесь. При рендеринге последнего шага в форме мастера недостаточно данных. В запросе ddt есть это: с пропуском шага. Так что, если я загружу файл, он заполнит данные против_индикации вместо данных предписания и повторно отрендерит мне последний шаг...
Я попытался сделать все это, не пропуская второй шаг, и посмотреть, как выглядит запрос ddt: без пропуска шаг.
У кого-то есть решение, позволяющее иметь правильные данные, когда я пропускаю шаг, пожалуйста?
Спасибо за ваши дальнейшие ответы