我在django嚮導窗體上遇到了一個很大的問題。跳過步驟x到步驟y並驗證步驟x數據
我有3個步驟。第二步可以包含或不包含數據。最後一步是文件上傳步驟。
在WizardForm類,我overrided的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)
正如你看到的,如果沒有問題,我跳過第二步(against_indication)進入下一步驟(處方)。
問題出現在這裏。當最後一步渲染時,嚮導窗體中沒有足夠的數據。在ddt的要求是這樣的: with skip step。 因此,如果我上傳文件,它會填充反對數據而不是處方數據,並重新渲染我最後一步...
我試圖做所有這些,而不跳過第二步,看看如何看看ddt的要求: without skip step。
有人有一個解決方案,允許有正確的數據時,我跳過步驟,PLZ?
感謝您的回答進一步
謝謝@IanPrice!這個使用condition_dict的例子比官方的django例子更真實。它拯救了我的一天:) –
很好聽!是的,這些文檔對FW來說確實不是很好。 –
如果我能夠幫助,將此標記爲答案並upvoting是讚賞:) –