У меня есть мастер формы django. Прежде чем пользователь войдет в мастер и на каждом из 4 шагов мастера, я хочу оценить условие if для проверки данных.
Когда условие if не выполняется, я хочу выйти из мастера и перенаправить пользователя на стартовую страницу, где отображается информационный блок, сообщающий пользователю о проблеме отсутствия данных.
Я попытался поставить условие if для перенаправления пользователя в мастере, но мне сообщили, что я не могу вернуть перенаправление в get_context_data(), так как SessionWizardView не вернет это значение в качестве ответа сильный>.
Есть ли способ обойти эту проблему?
Вот мой код мастера формы:
class CreateDocumentWizard(SessionWizardView):
template_name = 'documents/document_create.html'
form_list = [
core_forms.CreateDocumentWizardForm01,
core_forms.CreateDocumentWizardForm02,
core_forms.CreateDocumentWizardForm03,
core_forms.CreateDocumentWizardForm04,
]
def get_form_kwargs(self, step=None):
kwargs = super(CreateDocumentWizard, self).get_form_kwargs(step)
kwargs.setdefault('user', self.request.user)
return kwargs
def get_context_data(self, form, **kwargs):
name_details_count = NameDetails.objects.filter(user=self.request.user).count()
# redirect user if no name details held.
if name_details_count < 1:
return HttpResponseRedirect('document_start')