次のクラスを検討してください。
models.py:
class Data(models.Model):
first_name = models.CharField()
checkbox_1 = models.BooleanField()
checkbox_2 = models.BooleanField()
フォーム.py:
class Form1(ModelForm):
class Meta:
model = Data
fields = ('first_name', 'checkbox_1',)
class Form2(ModelForm):
class Meta:
model = Data
fields = ('checkbox_2',)
Form1
はステップ 1 でForm2
使用され、a のステップ 2 で使用されSessionWizardView
ます。
Form2.checkbox_2
ユーザーがステップ 1 でチェックした場合、ステップ 2 で無効にするにはどうすればよいForm2.checkbox_1
ですか?
私は成功せずにオーバーライドすることでこれを達成しようとしましたget_form()
:
def get_form(self, step=None, data=None, files=None):
form = super(MyWizard, self).get_form(step, data, files)
if step == '1':
form.fields['checkbox_2'].widget.attrs['disabled'] = 'disabled'
return form
の値を意図的にチェックしていないことに注意してくださいForm2.checkbox_1
。いずれにせよ、ウィジェットの属性を設定しようとしました。