【发布时间】:2016-11-29 13:04:12
【问题描述】:
我有这个模型:-
class ModelA(models.Model):
billing_same_as_mailing = models.BooleanField(default=True, label='...')
还有这个表格:-
class ModelAForm(forms.ModelForm):
class Meta:
model = ModelA
fields = ['billing_same_as_mailing']
在我的模板中,我尝试了以下领域:-
{{ form.billing_same_as_mailing }}
现在,当我发帖时,cleaned_data 中 billing_same_as_mailing 的值始终为 false。 但是如果我在模型中将 BooleanField 的默认值设置为 False,一切正常。
现在,当我检查浏览器上的复选框元素时,我得到的是:- 默认=False:-
<input class="" id="billing_same_as_mailing" name="billing_same_as_mailing" type="checkbox">
默认=True:-
<input checked="checked" class="" id="id_billing_same_as_mailing" name="billing_same_as_mailing" type="checkbox" value="">
为什么会这样??
【问题讨论】:
-
呈现的 HTML 看起来不错。我猜想问题在于您如何检查/使用
cleaned_data中的值。向我们展示不起作用的代码。 -
def form_valid(self, form): print form.cleaned_data 这说明billing_same_as_mailing的值为False
-
打印 form.cleaned_data['billing_same_as_mailing'] 也返回 False
-
请发布minimal, complete, verifiable example 以重现您的错误 - 否则您只是要求在黑暗中拍摄。在这种情况下,我们需要您用来呈现和处理表单的视图和模板代码。
-
@AbhinavNair 你会在任何地方覆盖你的保存方法吗?
标签: django django-models django-forms django-templates