2013-09-11 2 views

ответ

3

Добавить get_form_initial() метод в вашем классе мастера, для второго шага используйте данные с первого шага, используя get_cleaned_data_for_step().

Что-то вроде:

class myWizardView: 

    def get_form_initial(self, step): 
     if int(step) == 1: 
      # get cleaned data from prev step 
      return self.get_cleaned_data_for_step(str(int(step) - 1)) 

Вы можете манипулировать Dict иметь соответствующие имена атрибутов и т.д.

Больше ссылка на Form Wizard

+0

Ну ... что не работает :(Во-первых, шаги пронумерованы от 0, а во-вторых, они являются строками. Поэтому на самом деле мне нужно проверить, есть ли «step ==» 1 ». Это не большая проблема. что 'self.get_cleaned_data_for_step (i)' где i в [0,1,2] возвращает None. И 'self.ge t_cleaned_data_for_step ('0') 'заканчивается на' RuntimeError: превышена максимальная глубина рекурсии'. –

+0

Я добавил некоторую информацию к предыдущему комментарию, я послал не законченный один по ошибке. –

+0

@SzymonGuz, django хранит шаги как строку, поэтому передайте 'i' как строку, используя' str (i) 'to' get_cleaned_data_for_step() '. Я также обновил ответ. – Rohan