我有以下型号:
ynChoice = ((None, 'Acknowledgement not required'),
(True, 'Acknowledgement and consent required'),
(False, 'Acknowledgement required but consent not required'))
class AbstractForm(models.Model):
"""base class for the below 2 classes"""
#require users to say yes and no other than acknowledging #null = not required
yes_no_required = models.NullBooleanField(choices=ynChoice, blank=False)
我将它映射到我的模型形式:
class LiveConsentForm(forms.ModelForm):
ynChoice = (
('', '---------------'),
(None, 'Acknowledgement not required'),
(True, 'Acknowledgement and consent required'),
(False, 'Acknowledgement required but consent not required'),
)
yes_no_required = forms.TypedChoiceField(choices=ynChoice,empty_value='')
class Meta:
model = ConsentFormTemplate
此处,ConsentFormTemplate
是AbstractForm
的子类。我在表单中写了yes_no_required
因为nullbooleanfield的formfield的空值将返回None
,这是我不想要的。
现在,当我想要实例化我的表单以显示现有记录LiveConsentForm(instance=templateInstance)
时,我遇到了一个问题。
我的templateInstance.yes_no_required
的值为无,但是在呈现html时,会选择------
。 (当yes_no_required
为True
或False
时,我没有这样的麻烦
需要一些帮助。
答案 0 :(得分:0)
好的,我看过forms.fields和
结果表明,当渲染到html时,结果是None只被视为'',并且这里不考虑empty_value。我不确定为什么@Ignacio Vazquez-Abrams老兄拿走了他的答案,所以如果你能再把它重新装回去,我会接受的。