今天我已經開始在django 1.4中使用Form Wizard了。功能似乎是不錯的,但是根據該文件,一個需要通過form_list
(和condition_dict
,必要時)到as_view
方法(這意味着urls.py
)代替在WizardView
django form wizard - 在views.py(WizardView子類)中定義form_list和condition_dict,不在urls.py
這意味着該子類提供它寫urls.py
而不是views.py
一些邏輯,我認爲這是對django模式,因爲意見模塊應該負責視圖邏輯。
我已經結束了以下內容:
# views.py
class MyWizard(SessionWizardView):
_form_list = (
('init', forms.MyWizardFormInit),
('newuser', forms.MyWizardFormNewUser),
)
_condition_dict = {
'newuser': lambda wizard: (wizard.get_cleaned_data_for_step('init') or {}).get('existing_user') == 'False'
}
和urls.py
:
url(.., MyWizard.as_view(MyWizard._form_list, condition_dict = MyWizard._condition_dict)),
這看起來真的很傻和可笑。 是否有任何正確的方法阻止在urls.py中聲明邏輯,而保持DRY?
它仍然看起來不像「正常」的CBV,但有點更好;)謝謝! – migajek