1
在Django表單嚮導中可以重複一個步驟嗎?我想根據用戶的需求重複一個無限次的步驟。在Django 1.6窗體嚮導中可以重複一個步驟嗎?
在Django表單嚮導中可以重複一個步驟嗎?我想根據用戶的需求重複一個無限次的步驟。在Django 1.6窗體嚮導中可以重複一個步驟嗎?
表單嚮導的documentation指示如何進行條件步驟。我和功能工廠一起使用了幾百個條件步驟,所以用戶可以根據需要多次重複最後一步。
from django.contrib.formtools.wizard.views import SessionWizardView
from myapp.forms import BasicInformation, MoreInformation
def function_factory(cond_step):
def info(wizard):
cleaned_data = wizard.get_cleaned_data_for_step(str(cond_step)) or {}
return cleaned_data.get("add_another_step", False)
return info
def make_condition_stuff(extra, cond_step):
cond_funcs = {}
cond_dict = {}
form_lst = [
BasicInformation,
MoreInformation,
]
for x in range(extra):
key1 = "info{0}".format(x)
cond_funcs[key1] = function_factory(cond_step)
cond_dict[str(cond_step+1)] = cond_funcs[key1]
form_lst.append(MoreInformation)
return cond_funcs, cond_dict, form_lst
last_step_before_extras = 1
extra_steps = 300
cond_funcs, cond_dict, form_list = make_condition_stuff(
extra_steps,
last_step_before_extras
)
class InfoWizard(SessionWizardView):
form_list = form_list
condition_dict = cond_dict
...
對於Django 1.4類似的問題:http://stackoverflow.com/questions/13052224/how-to-dynamically-repeat-steps-in-django-formwizard-1-4 – Andy