考虑以下类:
模型.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
. 无论如何,我都尝试设置小部件的属性。